<html>
<head><meta charset="UTF-8" /><script>
var $gwt_version = "2.0.3";
var $wnd = parent;
var $doc = $wnd.document;
var $moduleName, $moduleBase;
var $strongName = 'F26BD74AADA16753B20A65846502F7B4';
var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null,
$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;
$stats && $stats({moduleName:'carorientor',sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});
</script></head>
<body>
<script><!--
var _, N8000000000000000_longLit = [0, -9223372036854775808], P1000000_longLit = [16777216, 0], P7fffffffffffffff_longLit = [4294967295, 9223372032559808512];
function nullMethod(){
}

function equals(other){
  return this === (other == null?null:other);
}

function getClass_0(){
  return Ljava_lang_Object_2_classLit;
}

function hashCode_0(){
  return this.$H || (this.$H = ++sNextHashId);
}

function toString_0(){
  return (this.typeMarker$ == nullMethod || this.typeId$ == 2?this.getClass$():Lcom_google_gwt_core_client_JavaScriptObject_2_classLit).typeName + '@' + toPowerOfTwoString(this.typeMarker$ == nullMethod || this.typeId$ == 2?this.hashCode$():this.$H || (this.$H = ++sNextHashId), 4);
}

function Object_0(){
}

_ = Object_0.prototype = {};
_.equals$ = equals;
_.getClass$ = getClass_0;
_.hashCode$ = hashCode_0;
_.toString$ = toString_0;
_.toString = function(){
  return this.toString$();
}
;
_.typeMarker$ = nullMethod;
_.typeId$ = 1;
function $replaceNode(node, newNode){
  var p = node.parentNode;
  if (!p) {
    return;
  }
  p.insertBefore(newNode, node);
  p.removeChild(node);
}

function $setElement(this$static, elem){
  this$static.element = elem;
}

function getClass_1(){
  return Lcom_google_gwt_user_client_ui_UIObject_2_classLit;
}

function setStylePrimaryName(elem, style){
  if (!elem) {
    throw $RuntimeException(new RuntimeException, 'Null widget handle. If you are creating a composite, ensure that initWidget() has been called.');
  }
  style = $trim(style);
  if (style.length == 0) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, 'Style names cannot be empty');
  }
  updatePrimaryAndDependentStyleNames(elem, style);
}

function toString_1(){
  if (!this.element) {
    return '(null handle)';
  }
  return ($clinit_53() , this.element).outerHTML;
}

function updatePrimaryAndDependentStyleNames(elem, newPrimaryStyle){
  var classes = elem.className.split(/\s+/);
  if (!classes) {
    return;
  }
  var oldPrimaryStyle = classes[0];
  var oldPrimaryStyleLen = oldPrimaryStyle.length;
  classes[0] = newPrimaryStyle;
  for (var i = 1, n = classes.length; i < n; i++) {
    var name_0 = classes[i];
    name_0.length > oldPrimaryStyleLen && name_0.charAt(oldPrimaryStyleLen) == '-' && name_0.indexOf(oldPrimaryStyle) == 0 && (classes[i] = newPrimaryStyle + name_0.substring(oldPrimaryStyleLen));
  }
  elem.className = classes.join(' ');
}

function UIObject(){
}

_ = UIObject.prototype = new Object_0;
_.getClass$ = getClass_1;
_.toString$ = toString_1;
_.typeId$ = 3;
_.element = null;
function $addDomHandler(this$static, handler, type){
  $sinkEvents(this$static, $eventGetTypeInt(type.name_0));
  return $addHandler_0(!this$static.handlerManager?(this$static.handlerManager = $HandlerManager(new HandlerManager, this$static)):this$static.handlerManager, type, handler);
}

function $addHandler(this$static, handler, type){
  return $addHandler_0(!this$static.handlerManager?(this$static.handlerManager = $HandlerManager(new HandlerManager, this$static)):this$static.handlerManager, type, handler);
}

function $fireEvent(this$static, event_0){
  !!this$static.handlerManager && $fireEvent_0(this$static.handlerManager, event_0);
}

function $onAttach(this$static){
  var bitsToAdd;
  if (this$static.isAttached()) {
    throw $IllegalStateException_0(new IllegalStateException, "Should only call onAttach when the widget is detached from the browser's document");
  }
  this$static.attached = true;
  this$static.element.__listener = this$static;
  bitsToAdd = this$static.eventsToSink;
  this$static.eventsToSink = -1;
  bitsToAdd > 0 && $sinkEvents(this$static, bitsToAdd);
  this$static.doAttachChildren();
  this$static.onLoad();
}

function $onBrowserEvent(this$static, event_0){
  var related;
  switch ($eventGetTypeInt(($clinit_53() , event_0).type)) {
    case 16:
    case 32:
      related = event_0.relatedTarget || (event_0.type == 'mouseout'?event_0.toElement:event_0.fromElement);
      if (!!related && $isOrHasChild(this$static.element, related)) {
        return;
      }

  }
  fireNativeEvent(event_0, this$static, this$static.element);
}

function $onDetach(this$static){
  if (!this$static.isAttached()) {
    throw $IllegalStateException_0(new IllegalStateException, "Should only call onDetach when the widget is attached to the browser's document");
  }
  try {
    this$static.onUnload();
  }
   finally {
    try {
      this$static.doDetachChildren();
    }
     finally {
      this$static.element.__listener = null;
      this$static.attached = false;
    }
  }
}

function $removeFromParent(this$static){
  if (!this$static.parent_0) {
    $clinit_206();
    $containsKey(widgetsToDetach.map, this$static) && detachNow(this$static);
  }
   else if (instanceOf(this$static.parent_0, 52)) {
    dynamicCast(this$static.parent_0, 52).remove(this$static);
  }
   else if (this$static.parent_0) {
    throw $IllegalStateException_0(new IllegalStateException, "This widget's parent does not implement HasWidgets");
  }
}

function $replaceElement_0(this$static, elem){
  this$static.attached && (this$static.element.__listener = null , undefined);
  !!this$static.element && $replaceNode(this$static.element, elem);
  this$static.element = elem;
  this$static.attached && (this$static.element.__listener = this$static , undefined);
}

function $setParent(this$static, parent_0){
  var oldParent;
  oldParent = this$static.parent_0;
  if (!parent_0) {
    try {
      !!oldParent && oldParent.isAttached() && this$static.onDetach();
    }
     finally {
      this$static.parent_0 = null;
    }
  }
   else {
    if (oldParent) {
      throw $IllegalStateException_0(new IllegalStateException, 'Cannot set a new parent without first clearing the old parent');
    }
    this$static.parent_0 = parent_0;
    parent_0.isAttached() && this$static.onAttach();
  }
}

function $sinkEvents(this$static, eventBitsToAdd){
  this$static.eventsToSink == -1?sinkEvents(this$static.element, eventBitsToAdd | (this$static.element.__eventBits || 0)):(this$static.eventsToSink |= eventBitsToAdd);
}

function doAttachChildren(){
}

function doDetachChildren(){
}

function fireEvent(event_0){
  !!this.handlerManager && $fireEvent_0(this.handlerManager, event_0);
}

function getClass_2(){
  return Lcom_google_gwt_user_client_ui_Widget_2_classLit;
}

function isAttached(){
  return this.attached;
}

function onAttach(){
  $onAttach(this);
}

function onBrowserEvent(event_0){
  $onBrowserEvent(this, event_0);
}

function onDetach(){
  $onDetach(this);
}

function onLoad_0(){
}

function onUnload(){
}

function Widget(){
}

_ = Widget.prototype = new UIObject;
_.doAttachChildren = doAttachChildren;
_.doDetachChildren = doDetachChildren;
_.fireEvent_0 = fireEvent;
_.getClass$ = getClass_2;
_.isAttached = isAttached;
_.onAttach = onAttach;
_.onBrowserEvent = onBrowserEvent;
_.onDetach = onDetach;
_.onLoad = onLoad_0;
_.onUnload = onUnload;
_.typeId$ = 4;
_.attached = false;
_.eventsToSink = 0;
_.handlerManager = null;
_.parent_0 = null;
function doAttachChildren_0(){
  tryCommand(this, ($clinit_183() , attachCommand));
}

function doDetachChildren_0(){
  tryCommand(this, ($clinit_183() , detachCommand));
}

function getClass_3(){
  return Lcom_google_gwt_user_client_ui_Panel_2_classLit;
}

function onLoad_1(){
}

function onUnload_0(){
}

function Panel(){
}

_ = Panel.prototype = new Widget;
_.doAttachChildren = doAttachChildren_0;
_.doDetachChildren = doDetachChildren_0;
_.getClass$ = getClass_3;
_.onLoad = onLoad_1;
_.onUnload = onUnload_0;
_.typeId$ = 5;
function $remove(this$static, w){
  if (this$static.widget != w) {
    return false;
  }
  try {
    $setParent(w, null);
  }
   finally {
    this$static.element.removeChild(w.element);
    this$static.widget = null;
  }
  return true;
}

function $setWidget(this$static, w){
  if (w == this$static.widget) {
    return;
  }
  !!w && $removeFromParent(w);
  !!this$static.widget && $remove(this$static, this$static.widget);
  this$static.widget = w;
  if (w) {
    this$static.element.appendChild(this$static.widget.element);
    $setParent(w, this$static);
  }
}

function getClass_4(){
  return Lcom_google_gwt_user_client_ui_SimplePanel_2_classLit;
}

function iterator(){
  return $SimplePanel$1(new SimplePanel$1, this);
}

function remove_0(w){
  return $remove(this, w);
}

function SimplePanel(){
}

_ = SimplePanel.prototype = new Panel;
_.getClass$ = getClass_4;
_.iterator = iterator;
_.remove = remove_0;
_.typeId$ = 6;
_.widget = null;
function getClass_5(){
  return Lcom_google_gwt_user_client_ui_FocusPanel_2_classLit;
}

function FocusPanel(){
}

_ = FocusPanel.prototype = new SimplePanel;
_.getClass$ = getClass_5;
_.typeId$ = 7;
function $CarOrientor(this$static){
  this$static.element = $createFocusable();
  return this$static;
}

function $configLoaded(this$static){
  this$static.element.className = 'carOrientor';
  $add_0(get_0('canvasContainer'), this$static);
}

function $draw(this$static){
  var movableImageRedrawn, wireFrameRedrawn;
  wireFrameRedrawn = false;
  !!this$static.wireFrameView && (wireFrameRedrawn = $draw_1(this$static.wireFrameView));
  if (this$static.movableImageView) {
    if (wireFrameRedrawn) {
      $redraw(this$static.movableImageView);
      movableImageRedrawn = true;
    }
     else {
      movableImageRedrawn = $draw_0(this$static.movableImageView);
    }
    movableImageRedrawn && $drawWireFrameOn(this$static, this$static.movableImageView.canvas);
  }
  return true;
}

function $drawWireFrameOn(this$static, canvas){
  var fromCanvas;
  fromCanvas = this$static.wireFrameView.canvas.canvas;
  canvas.context.save();
  canvas.context.setTransform(1, 0, 0, 1, 0, 0);
  $drawImage(canvas, fromCanvas, 0, 0, parseInt(canvas.element['offsetWidth']) || 0, parseInt(canvas.element['offsetHeight']) || 0);
  canvas.context.restore();
}

function $onModuleLoad(this$static){
  this$static.imageURL = (ensureParameterMap() , dynamicCast($get_1(paramMap, 'img'), 1));
  $setCarRectangle(this$static, $Rectangle(new Rectangle, valueOf(__parseAndValidateInt((ensureParameterMap() , dynamicCast($get_1(paramMap, 'x'), 1)), 10, -2147483648, 2147483647)).value_0, valueOf(__parseAndValidateInt((ensureParameterMap() , dynamicCast($get_1(paramMap, 'y'), 1)), 10, -2147483648, 2147483647)).value_0, valueOf(__parseAndValidateInt((ensureParameterMap() , dynamicCast($get_1(paramMap, 'w'), 1)), 10, -2147483648, 2147483647)).value_0, valueOf(__parseAndValidateInt((ensureParameterMap() , dynamicCast($get_1(paramMap, 'h'), 1)), 10, -2147483648, 2147483647)).value_0));
  this$static.config = ($clinit_12() , $clinit_12() , DEFAULT);
  if (this$static.config.loaded) {
    this$static.element.className = 'carOrientor';
    $add_0(get_0('canvasContainer'), this$static);
  }
   else {
    $addValueChangeHandler(this$static.config, $CarOrientor$1(new CarOrientor$1, this$static));
  }
}

function $reset(this$static){
  var def;
  $reset_1(this$static.wireFrameView);
  $reset_0(this$static.movableImageView);
  $setValue(this$static.zoomSlider, lowBits(fromDouble(Math.round($getZoomFactor(this$static.movableImageView) * $Double(new Double, parseFloat(this$static.zoomSlider.widget.element.max)).value_0))));
  this$static.rollSlider.widget.element.value = 50;
  def = this$static.config.defaultWireFrame;
  if (this$static.wireFrameView.wireFrame != def) {
    $setWireFrame(this$static.wireFrameView, def);
    $setSelectedCarName(this$static, this$static.config.defaultWireFrameName);
  }
  $draw(this$static);
}

function $setCarRectangle(this$static, carRect){
  this$static.carRect = carRect;
  $draw(this$static);
}

function $setSelectedCarName(this$static, name_0){
  var i;
  if (name_0 == null) {
    $setItemSelected(this$static.carSelectBox, this$static.carSelectBox.element.selectedIndex, false);
    return;
  }
  for (i = 0; i < ($clinit_53() , this$static.carSelectBox.element).options.length; ++i) {
    if ($equals_5(name_0, $getItemText(this$static.carSelectBox, i))) {
      this$static.carSelectBox.element.selectedIndex = i;
      return;
    }
  }
  throw $IllegalArgumentException_0(new IllegalArgumentException, '"' + name_0 + '" is not in the carSelectBox.');
}

function getClass_6(){
  return Lcar_orientor_client_CarOrientor_2_classLit;
}

function onLoad_2(){
  var carFrame, name_0, name$iterator, rollLabel, style, wfvStyle, zoomLabel;
  style = this.element.style;
  style['width'] = 614 + ($clinit_74() , 'px');
  carFrame = this.config.defaultWireFrame;
  this.wireFrameView = $ObjWireFrameView(new ObjWireFrameView, carFrame, 300, 300);
  wfvStyle = this.wireFrameView.element.style;
  wfvStyle['display'] = ($clinit_68() , 'inline-block');
  wfvStyle['paddingRight'] = '10px';
  this.wfmh = $WireFrameMouseHandler(new WireFrameMouseHandler, this, this.wireFrameView);
  $addDomHandler(this.wireFrameView, this.wfmh, ($clinit_114() , $clinit_114() , TYPE_2));
  $addDomHandler(this.wireFrameView, this.wfmh, ($clinit_118() , $clinit_118() , TYPE_4));
  $addDomHandler(this.wireFrameView, this.wfmh, ($clinit_116() , $clinit_116() , TYPE_3));
  this.movableImageView = $MovableImageView(new MovableImageView, this.image, this.carRect, 300, 300);
  this.movableImageView.element.style['display'] = 'inline-block';
  this.image = $Image(new Image_0, this.imageURL);
  $addHandler(this.image, $CarOrientor$2(new CarOrientor$2, this), ($clinit_111() , $clinit_111() , TYPE_1));
  this.image.element.style['display'] = 'none';
  this.mimh = $MovableImageMouseHandler(new MovableImageMouseHandler, this, this.movableImageView);
  $addDomHandler(this.movableImageView, this.mimh, TYPE_2);
  $addDomHandler(this.movableImageView, this.mimh, TYPE_4);
  $addDomHandler(this.movableImageView, this.mimh, TYPE_3);
  this.resetButton = $Button(new Button, 'Reset', $CarOrientor$3(new CarOrientor$3, this));
  setStylePrimaryName(this.resetButton.element, 'resetButton');
  this.sliderPanel = $FlowPanel(new FlowPanel);
  setStylePrimaryName(this.sliderPanel.element, 'sliderPanel');
  rollLabel = $InlineLabel(new InlineLabel, 'Roll: ');
  $add_1(this.sliderPanel, rollLabel);
  this.rollSlider = $Slider(new Slider);
  $addHandler(this.rollSlider.widget, $CarOrientor$4(new CarOrientor$4, this), getType());
  $add_1(this.sliderPanel, this.rollSlider);
  zoomLabel = $InlineLabel(new InlineLabel, 'Zoom: ');
  $add_1(this.sliderPanel, zoomLabel);
  this.zoomSlider = $Slider(new Slider);
  $addHandler(this.zoomSlider.widget, $CarOrientor$5(new CarOrientor$5, this), getType());
  $setValue(this.zoomSlider, lowBits(fromDouble(Math.round($getZoomFactor(this.movableImageView) * $Double(new Double, parseFloat(this.zoomSlider.widget.element.max)).value_0))));
  $add_1(this.sliderPanel, this.zoomSlider);
  this.carSelectBox = $ListBox(new ListBox);
  for (name$iterator = ($clinit_309() , $Collections$UnmodifiableSet(new Collections$UnmodifiableSet, $keySet(this.config.wireFrames))).iterator(); name$iterator.hasNext();) {
    name_0 = dynamicCast(name$iterator.next(), 1);
    $insertItem(this.carSelectBox, name_0, -1);
  }
  $addDomHandler(this.carSelectBox, $CarOrientor$6(new CarOrientor$6, this), ($clinit_86() , $clinit_86() , TYPE));
  $setSelectedCarName(this, this.config.defaultWireFrameName);
  this.container = $FlowPanel(new FlowPanel);
  $add_1(this.container, this.image);
  $add_1(this.container, this.wireFrameView);
  $add_1(this.container, this.movableImageView);
  $add_1(this.container, this.sliderPanel);
  $add_1(this.container, this.carSelectBox);
  $add_1(this.container, this.resetButton);
  $setWidget(this, this.container);
  $draw(this);
}

function CarOrientor(){
}

_ = CarOrientor.prototype = new FocusPanel;
_.getClass$ = getClass_6;
_.onLoad = onLoad_2;
_.typeId$ = 8;
_.carRect = null;
_.carSelectBox = null;
_.config = null;
_.container = null;
_.image = null;
_.imageURL = null;
_.mimh = null;
_.movableImageView = null;
_.resetButton = null;
_.rollSlider = null;
_.sliderPanel = null;
_.wfmh = null;
_.wireFrameView = null;
_.zoomSlider = null;
function $CarOrientor$1(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_7(){
  return Lcar_orientor_client_CarOrientor$1_2_classLit;
}

function onValueChange(event_0){
  dynamicCast(event_0.value_0, 2).value_0 && $configLoaded(this.this$0);
}

function CarOrientor$1(){
}

_ = CarOrientor$1.prototype = new Object_0;
_.getClass$ = getClass_7;
_.onValueChange = onValueChange;
_.typeId$ = 9;
_.this$0 = null;
function $CarOrientor$2(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_8(){
  return Lcar_orientor_client_CarOrientor$2_2_classLit;
}

function CarOrientor$2(){
}

_ = CarOrientor$2.prototype = new Object_0;
_.getClass$ = getClass_8;
_.typeId$ = 10;
_.this$0 = null;
function $CarOrientor$3(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_9(){
  return Lcar_orientor_client_CarOrientor$3_2_classLit;
}

function CarOrientor$3(){
}

_ = CarOrientor$3.prototype = new Object_0;
_.getClass$ = getClass_9;
_.typeId$ = 11;
_.this$0 = null;
function $CarOrientor$4(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_10(){
  return Lcar_orientor_client_CarOrientor$4_2_classLit;
}

function onValueChange_0(event_0){
  $setRotateZ(this.this$0.wireFrameView, -(dynamicCast(event_0.value_0, 3).value_0 / $Double(new Double, parseFloat(this.this$0.rollSlider.widget.element.max)).value_0 - 0.5) * 3.141592653589793);
  $draw(this.this$0);
}

function CarOrientor$4(){
}

_ = CarOrientor$4.prototype = new Object_0;
_.getClass$ = getClass_10;
_.onValueChange = onValueChange_0;
_.typeId$ = 12;
_.this$0 = null;
function $CarOrientor$5(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_11(){
  return Lcar_orientor_client_CarOrientor$5_2_classLit;
}

function onValueChange_1(event_0){
  $setZoom(this.this$0.movableImageView, dynamicCast(event_0.value_0, 3).value_0 / $Double(new Double, parseFloat(this.this$0.zoomSlider.widget.element.max)).value_0);
  $draw(this.this$0);
}

function CarOrientor$5(){
}

_ = CarOrientor$5.prototype = new Object_0;
_.getClass$ = getClass_11;
_.onValueChange = onValueChange_1;
_.typeId$ = 13;
_.this$0 = null;
function $CarOrientor$6(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_12(){
  return Lcar_orientor_client_CarOrientor$6_2_classLit;
}

function onChange(event_0){
  var selectedName;
  selectedName = $getItemText(this.this$0.carSelectBox, this.this$0.carSelectBox.element.selectedIndex);
  $setWireFrame(this.this$0.wireFrameView, $getWireFrame(this.this$0.config, selectedName));
  $draw(this.this$0);
}

function CarOrientor$6(){
}

_ = CarOrientor$6.prototype = new Object_0;
_.getClass$ = getClass_12;
_.onChange = onChange;
_.typeId$ = 14;
_.this$0 = null;
function $clinit_12(){
  $clinit_12 = nullMethod;
  DEFAULT = $Config(new Config, '../config.xml');
}

function $Config(this$static, url){
  $clinit_12();
  this$static.wireFrames = $TreeMap(new TreeMap);
  this$static.handlers = $HandlerManager(new HandlerManager, this$static);
  $loadConfig(this$static, url);
  return this$static;
}

function $addValueChangeHandler(this$static, handler){
  return $addHandler_0(this$static.handlers, getType(), handler);
}

function $getWireFrame(this$static, name_0){
  var ret;
  ret = dynamicCast($get_3(this$static.wireFrames, name_0), 4);
  if (!ret) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, 'No WireFrame with name "' + name_0 + '" exists.');
  }
   else {
    return dynamicCast($get_3(this$static.wireFrames, name_0), 4);
  }
}

function $loadConfig(this$static, url){
  var $e0, ex, rb;
  rb = $RequestBuilder(new RequestBuilder, ($clinit_142() , GET), url);
  $setCallback(rb, $Config$1(new Config$1, this$static));
  try {
    throwIfNull('callback', rb.callback);
    $doSend(rb, rb.requestData, rb.callback);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 5)) {
      ex = $e0;
      throw $RuntimeException_0(new RuntimeException, 'Error requesting config file: "' + url + '"', ex);
    }
     else 
      throw $e0;
  }
}

function $loadWireFrames(this$static, root){
  var i, isDefault, name_0, url, wireFrame, wireFrameElement, wireFrameMappings, wireFramesElement;
  wireFramesElement = dynamicCast($item($NodeListImpl(new NodeListImpl, ($clinit_249() , root.jsObject.selectNodes(".//*[local-name()='wire-frames']"))), 0), 6);
  wireFrameMappings = $NodeListImpl(new NodeListImpl, wireFramesElement.jsObject.selectNodes(".//*[local-name()='wire-frame']"));
  this$static.wireFramesToLoad = wireFrameMappings.jsObject.length;
  for (i = 0; i < wireFrameMappings.jsObject.length; ++i) {
    wireFrameElement = dynamicCast(build(item_0(wireFrameMappings.jsObject, i)), 6);
    name_0 = wireFrameElement.jsObject.getAttribute('name');
    isDefault = $equals_5('true', wireFrameElement.jsObject.getAttribute('default'));
    url = dynamicCast($item($NodeListImpl(new NodeListImpl, wireFrameElement.jsObject.childNodes), 0), 7).getData();
    wireFrame = $ObjWireFrame(new ObjWireFrame);
    createFromURL(wireFrame, url, $Config$AddCommand(new Config$AddCommand, name_0, wireFrame, isDefault, this$static));
  }
}

function $loaded(this$static){
  !this$static.defaultWireFrame && $setDefaultWireFrame(this$static, dynamicCast(($clinit_309() , $Collections$UnmodifiableSet(new Collections$UnmodifiableSet, $keySet(this$static.wireFrames))).iterator().next(), 1));
  this$static.loaded = true;
  fire_0(this$static, ($clinit_268() , this$static.loaded?TRUE:FALSE));
}

function $parseConfig(this$static, text){
  var root;
  this$static.xmlDoc = ($clinit_235() , $parse(impl, text));
  root = dynamicCast(build(($clinit_249() , this$static.xmlDoc.jsObject.documentElement)), 6);
  $loadWireFrames(this$static, root);
}

function $setDefaultWireFrame(this$static, name_0){
  this$static.defaultWireFrame = $getWireFrame(this$static, name_0);
  this$static.defaultWireFrameName = name_0;
}

function $wireFrameLoaded(this$static){
  --this$static.wireFramesToLoad == 0 && $loaded(this$static);
}

function fireEvent_0(event_0){
  $fireEvent_0(this.handlers, event_0);
}

function getClass_13(){
  return Lcar_orientor_client_Config_2_classLit;
}

function Config(){
}

_ = Config.prototype = new Object_0;
_.fireEvent_0 = fireEvent_0;
_.getClass$ = getClass_13;
_.typeId$ = 15;
_.defaultWireFrame = null;
_.defaultWireFrameName = null;
_.handlers = null;
_.loaded = false;
_.wireFrames = null;
_.wireFramesToLoad = 0;
_.xmlDoc = null;
var DEFAULT;
function $Config$1(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_14(){
  return Lcar_orientor_client_Config$1_2_classLit;
}

function onError(request, exception){
  throw $RuntimeException_1(new RuntimeException, exception);
}

function onResponseReceived(request, response){
  var $e0, $e1, ex, ex2;
  try {
    if (~~(response.val$xmlHttpRequest.status / 100) != 2) {
      throw $RuntimeException(new RuntimeException, 'Could not retrieve config file.');
    }
    $parseConfig(this.this$0, response.val$xmlHttpRequest.responseText);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 8)) {
      ex = $e0;
      try {
        $loaded(this.this$0);
      }
       catch ($e1) {
        $e1 = caught_0($e1);
        if (instanceOf($e1, 9)) {
          ex2 = $e1;
          $printStackTrace(ex);
          throw $RuntimeException_0(new RuntimeException, 'loadFallback() failed.', ex2);
        }
         else 
          throw $e1;
      }
      throw ex;
    }
     else 
      throw $e0;
  }
}

function Config$1(){
}

_ = Config$1.prototype = new Object_0;
_.getClass$ = getClass_14;
_.onError = onError;
_.onResponseReceived = onResponseReceived;
_.typeId$ = 0;
_.this$0 = null;
function $Config$AddCommand(this$static, name_0, wireFrame, isDefault, this$0){
  this$static.this$0 = this$0;
  this$static.name_0 = name_0;
  this$static.wireFrame = wireFrame;
  this$static.isDefault = isDefault;
  return this$static;
}

function $execute(this$static){
  $put_0(this$static.this$0.wireFrames, this$static.name_0, this$static.wireFrame);
  if (this$static.isDefault) {
    this$static.this$0.defaultWireFrame = this$static.wireFrame;
    this$static.this$0.defaultWireFrameName = this$static.name_0;
  }
  $wireFrameLoaded(this$static.this$0);
}

function getClass_15(){
  return Lcar_orientor_client_Config$AddCommand_2_classLit;
}

function Config$AddCommand(){
}

_ = Config$AddCommand.prototype = new Object_0;
_.getClass$ = getClass_15;
_.typeId$ = 0;
_.isDefault = false;
_.name_0 = null;
_.this$0 = null;
_.wireFrame = null;
function $MovableImageMouseHandler(this$static, drawer, view){
  this$static.drawer = drawer;
  this$static.view = view;
  return this$static;
}

function getClass_16(){
  return Lcar_orientor_client_MovableImageMouseHandler_2_classLit;
}

function onMouseDown(event_0){
  this.oldX = $getRelativeX(event_0, this.view.element);
  this.oldY = $getRelativeY(event_0, this.view.element);
  this.dragging = true;
}

function onMouseMove(event_0){
  var newX, newY;
  if (this.dragging) {
    newX = $getRelativeX(event_0, this.view.element);
    newY = $getRelativeY(event_0, this.view.element);
    $translate(this.view, this.oldX - newX, this.oldY - newY);
    $draw(this.drawer);
    this.oldX = newX;
    this.oldY = newY;
  }
}

function onMouseUp(event_0){
  this.dragging = false;
}

function MovableImageMouseHandler(){
}

_ = MovableImageMouseHandler.prototype = new Object_0;
_.getClass$ = getClass_16;
_.onMouseDown = onMouseDown;
_.onMouseMove = onMouseMove;
_.onMouseUp = onMouseUp;
_.typeId$ = 16;
_.dragging = false;
_.drawer = null;
_.oldX = 0;
_.oldY = 0;
_.view = null;
function $MovableImageView(this$static, image, rect, width, height){
  this$static.element = $createFocusable();
  this$static.LOG_BASE = Math.log(2);
  this$static.rectColor = $Color_1(new Color, 0, 0, 255);
  this$static.minZoomLog = Math.log(0.5) / this$static.LOG_BASE;
  this$static.maxZoomLog = Math.log(4) / this$static.LOG_BASE;
  this$static.image = image;
  this$static.rect = rect;
  this$static.width = width;
  this$static.height = height;
  !!image && (this$static.imageElement = image.element);
  this$static.canvas = $Surface(new Surface, width, height);
  $setStrokeStyle(this$static.canvas, this$static.rectColor);
  $reset_0(this$static);
  $setWidget(this$static, this$static.canvas);
  return this$static;
}

function $calcZoomFactor(this$static, z){
  return (Math.log(z) / this$static.LOG_BASE - this$static.minZoomLog) / (this$static.maxZoomLog - this$static.minZoomLog);
}

function $draw_0(this$static){
  if (this$static.dirty) {
    this$static.canvas.context.clearRect(-10000, -10000, 20000, 20000);
    !!this$static.image && $drawImage_0(this$static.canvas, this$static.imageElement, 0, 0);
    $strokeRectangle_0(this$static.canvas, this$static.rect);
    this$static.dirty = false;
    return true;
  }
   else {
    return false;
  }
}

function $getZoomFactor(this$static){
  return $calcZoomFactor(this$static, this$static.zoom);
}

function $redraw(this$static){
  this$static.dirty = true;
  $draw_0(this$static);
}

function $reset_0(this$static){
  this$static.offX = -this$static.rect.x + -this$static.rect.width / 2 + this$static.width / 2;
  this$static.offY = -this$static.rect.y + -this$static.rect.height / 2 + this$static.height / 2;
  this$static.zoom = 1;
  $setZoom(this$static, (Math.log(1) / this$static.LOG_BASE - this$static.minZoomLog) / (this$static.maxZoomLog - this$static.minZoomLog));
  this$static.dirty = true;
}

function $setImage(this$static, image){
  this$static.image = image;
  this$static.imageElement = image.element;
  this$static.dirty = true;
}

function $setZoom(this$static, t){
  var newZoom;
  newZoom = Math.pow(2, t * (this$static.maxZoomLog - this$static.minZoomLog) + this$static.minZoomLog);
  $setTransform(this$static.canvas, 1, 0, 0, 1, 0, 0);
  $scale(this$static.canvas, newZoom);
  $translate_0(this$static.canvas, this$static.offX / newZoom, this$static.offY / newZoom);
  $translate(this$static, this$static.width / 2 * (newZoom - this$static.zoom), this$static.height / 2 * (newZoom - this$static.zoom));
  this$static.zoom = newZoom;
  this$static.dirty = true;
}

function $translate(this$static, dx, dy){
  var oldX, oldY;
  oldX = this$static.offX;
  oldY = this$static.offY;
  this$static.offX -= dx;
  this$static.offY -= dy;
  $translate_0(this$static.canvas, (this$static.offX - oldX) / this$static.zoom, (this$static.offY - oldY) / this$static.zoom);
  this$static.dirty = true;
}

function getClass_17(){
  return Lcar_orientor_client_MovableImageView_2_classLit;
}

function MovableImageView(){
}

_ = MovableImageView.prototype = new FocusPanel;
_.getClass$ = getClass_17;
_.typeId$ = 17;
_.canvas = null;
_.dirty = true;
_.height = 0;
_.image = null;
_.imageElement = null;
_.offX = 0;
_.offY = 0;
_.rect = null;
_.width = 0;
_.zoom = 0;
--></script>
<script><!--
function $ObjWireFrameView(this$static, wireFrame, width, height){
  this$static.element = $createFocusable();
  $Color_1(new Color, 220, 220, 220);
  $Color_1(new Color, 0, 0, 0);
  this$static.wireFrame = wireFrame;
  $reconstructBuffer(this$static);
  this$static.canvas = $Surface(new Surface, width, height);
  this$static.builder = $DirectShapeRenderer(new DirectShapeRenderer, this$static.canvas);
  this$static.baseTransform = $Matrix(new Matrix);
  $set_0(this$static.baseTransform, height / 2, 0, 0, height / 2, 0, 0);
  this$static.baseTransform = $translate_2(this$static.baseTransform, width / height, 1);
  $setLineWidth(this$static.canvas, 2 / height);
  $setFillStyle(this$static.canvas, $Color_0(new Color, 0, 0, 0, 0));
  $setGlobalCompositeOperation(this$static.canvas, ($clinit_252() , COPY));
  this$static.rotMatrix = $Matrix3D_0(new Matrix3D);
  $setTransform_0(this$static.canvas, this$static.baseTransform);
  $setWidget(this$static, this$static.canvas);
  return this$static;
}

function $draw_1(this$static){
  if (this$static.dirty) {
    this$static.canvas.context.clearRect(-10000, -10000, 20000, 20000);
    $transformPoints(this$static);
    $drawBuffer(this$static);
    this$static.dirty = false;
    return true;
  }
   else {
    return false;
  }
}

function $drawBuffer(this$static){
  var face, face$array, face$index, face$max, faces, i, normal, vertices, view;
  view = $Point3D_0(new Point3D, 0, 0, -1);
  faces = this$static.wireFrame.faces;
  $insertionZSort(this$static, faces);
  for (face$array = faces , face$index = 0 , face$max = face$array.length; face$index < face$max; ++face$index) {
    face = face$array[face$index];
    vertices = face.vertices;
    normal = face.normal;
    if (normal == -1 || $dot(this$static.tNormals[normal], view) >= 0) {
      this$static.builder.context.beginPath();
      $moveTo_0(this$static.builder, this$static.vPoints[vertices[0]]);
      for (i = 1; i < vertices.length; ++i) {
        $drawLineTo_0(this$static.builder, this$static.vPoints[vertices[i]]);
      }
      $drawLineTo_0(this$static.builder, this$static.vPoints[vertices[0]]);
      this$static.builder.context.closePath();
      this$static.builder.context.fill();
      this$static.builder.context.stroke();
    }
  }
}

function $findMaxZ(this$static, face){
  var maxZ, vertex, vertex$array, vertex$index, vertex$max;
  maxZ = -Infinity;
  for (vertex$array = face.vertices , vertex$index = 0 , vertex$max = vertex$array.length; vertex$index < vertex$max; ++vertex$index) {
    vertex = vertex$array[vertex$index];
    maxZ = max_0(maxZ, this$static.tVertices[vertex].z);
  }
  return maxZ;
}

function $insertionZSort(this$static, faces){
  var face, faceMaxZs, i, j, maxZ;
  faceMaxZs = initDim(_3D_classLit, 147, -1, faces.length, 1);
  for (i = 0; i < faces.length; ++i) {
    faceMaxZs[i] = $findMaxZ(this$static, faces[i]);
  }
  for (i = 0; i < faces.length; ++i) {
    face = faces[i];
    maxZ = faceMaxZs[i];
    for (j = i; j > 0 && faceMaxZs[j - 1] > maxZ; --j) {
      faces[j] = faces[j - 1];
      faceMaxZs[j] = faceMaxZs[j - 1];
    }
    faces[j] = face;
    faceMaxZs[j] = maxZ;
  }
}

function $project(p3, p2){
  p2.setX(p3.x);
  p2.setY(-p3.y);
}

function $reconstructBuffer(this$static){
  var i;
  this$static.tVertices = initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, this$static.wireFrame.vertices.length, 0);
  this$static.vPoints = initDim(_3Lgwt_g2d_client_math_Vector2_2_classLit, 149, 10, this$static.tVertices.length, 0);
  this$static.tNormals = initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, this$static.wireFrame.normals.length, 0);
  for (i = 0; i < this$static.tVertices.length; ++i) {
    this$static.tVertices[i] = $Point3D(new Point3D);
    setCheck(this$static.vPoints, i, ($clinit_263() , new Vector2));
  }
  for (i = 0; i < this$static.tNormals.length; ++i) {
    this$static.tNormals[i] = $Point3D(new Point3D);
  }
  this$static.dirty = true;
}

function $reset_1(this$static){
  this$static.rotX = 0.39269908169872414;
  this$static.rotY = 0.7853981633974483;
  this$static.rotZ = 0;
  this$static.dirty = true;
}

function $rotate(this$static, dx, dy){
  $rotateX(this$static, dx);
  $rotateY(this$static, dy);
}

function $rotateX(this$static, dx){
  this$static.rotX += dx;
  while (this$static.rotX < 0) {
    this$static.rotX += 6.283185307179586;
  }
  while (this$static.rotX > 6.283185307179586) {
    this$static.rotX -= 6.283185307179586;
  }
  this$static.dirty = true;
}

function $rotateY(this$static, dy){
  this$static.rotY += dy;
  while (this$static.rotY < 0) {
    this$static.rotY += 6.283185307179586;
  }
  while (this$static.rotY > 6.283185307179586) {
    this$static.rotY -= 6.283185307179586;
  }
  this$static.dirty = true;
}

function $rotateZ(this$static, dz){
  this$static.rotZ += dz;
  while (this$static.rotZ < 0) {
    this$static.rotZ += 6.283185307179586;
  }
  while (this$static.rotZ > 6.283185307179586) {
    this$static.rotZ -= 6.283185307179586;
  }
  this$static.dirty = true;
}

function $setRotateZ(this$static, rotZ){
  this$static.rotZ = 0;
  $rotateZ(this$static, rotZ);
}

function $setWireFrame(this$static, wireFrame){
  this$static.wireFrame = wireFrame;
  $reconstructBuffer(this$static);
  this$static.dirty = true;
}

function $transformPoints(this$static){
  var i, normals, vertices, cosX, cosY, cosZ, sinX, sinY, sinZ;
  sinX = Math.sin(this$static.rotX);
  cosX = Math.cos(this$static.rotX);
  sinY = Math.sin(this$static.rotY);
  cosY = Math.cos(this$static.rotY);
  sinZ = Math.sin(this$static.rotZ);
  cosZ = Math.cos(this$static.rotZ);
  this$static.rotMatrix.m11 = cosY * cosZ;
  this$static.rotMatrix.m12 = -cosY * sinZ;
  this$static.rotMatrix.m13 = sinY;
  this$static.rotMatrix.m21 = sinX * sinY * cosZ + cosX * sinZ;
  this$static.rotMatrix.m22 = -sinX * sinY * sinZ + cosX * cosZ;
  this$static.rotMatrix.m23 = -sinX * cosY;
  this$static.rotMatrix.m31 = -cosX * sinY * cosZ + sinX * sinZ;
  this$static.rotMatrix.m32 = cosX * sinY * sinZ + sinX * cosZ;
  this$static.rotMatrix.m33 = cosX * cosY;
  vertices = this$static.wireFrame.vertices;
  for (i = 0; i < vertices.length; ++i) {
    $setPoint(this$static.tVertices[i], vertices[i]);
    $multiply(this$static.tVertices[i], this$static.rotMatrix);
    $project(this$static.tVertices[i], this$static.vPoints[i]);
  }
  normals = this$static.wireFrame.normals;
  for (i = 0; i < normals.length; ++i) {
    $setPoint(this$static.tNormals[i], normals[i]);
    $multiply(this$static.tNormals[i], this$static.rotMatrix);
  }
}

function getClass_18(){
  return Lcar_orientor_client_ObjWireFrameView_2_classLit;
}

function ObjWireFrameView(){
}

_ = ObjWireFrameView.prototype = new FocusPanel;
_.getClass$ = getClass_18;
_.typeId$ = 18;
_.baseTransform = null;
_.builder = null;
_.canvas = null;
_.dirty = true;
_.rotMatrix = null;
_.rotX = 0.39269908169872414;
_.rotY = 0.7853981633974483;
_.rotZ = 0;
_.tNormals = null;
_.tVertices = null;
_.vPoints = null;
_.wireFrame = null;
function $WireFrameMouseHandler(this$static, drawer, view){
  this$static.drawer = drawer;
  this$static.view = view;
  this$static.speed = 0.01;
  return this$static;
}

function getClass_19(){
  return Lcar_orientor_client_WireFrameMouseHandler_2_classLit;
}

function onMouseDown_0(event_0){
  this.oldX = $getRelativeX(event_0, this.view.element);
  this.oldY = $getRelativeY(event_0, this.view.element);
  this.dragging = true;
}

function onMouseMove_0(event_0){
  var newX, newY;
  if (this.dragging) {
    newX = $getRelativeX(event_0, this.view.element);
    newY = $getRelativeY(event_0, this.view.element);
    $rotate(this.view, (newY - this.oldY) * this.speed, (newX - this.oldX) * this.speed);
    $draw(this.drawer);
    this.oldX = newX;
    this.oldY = newY;
  }
}

function onMouseUp_0(event_0){
  this.dragging = false;
}

function WireFrameMouseHandler(){
}

_ = WireFrameMouseHandler.prototype = new Object_0;
_.getClass$ = getClass_19;
_.onMouseDown = onMouseDown_0;
_.onMouseMove = onMouseMove_0;
_.onMouseUp = onMouseUp_0;
_.typeId$ = 19;
_.dragging = false;
_.drawer = null;
_.oldX = 0;
_.oldY = 0;
_.speed = 0;
_.view = null;
function $Face(this$static, vertices, normal){
  this$static.vertices = vertices;
  this$static.normal = normal;
  return this$static;
}

function getClass_20(){
  return Lcar_orientor_client_wfio_obj_Face_2_classLit;
}

function toString_2(){
  var i, sb;
  sb = $StringBuilder(new StringBuilder);
  $append_6($append_5(($appendNonNull(sb.data_0, 'Face: [Normal = ') , sb), this.normal), ', vertices = [');
  if (this.vertices.length > 0) {
    $append_5(sb, this.vertices[0]);
    for (i = 0; i < this.vertices.length; ++i) {
      $append_5(($appendNonNull(sb.data_0, ', ') , sb), this.vertices[i]);
    }
  }
  $appendNonNull(sb.data_0, ']]');
  return $toString_1(sb.data_0);
}

function Face(){
}

_ = Face.prototype = new Object_0;
_.getClass$ = getClass_20;
_.toString$ = toString_2;
_.typeId$ = 20;
_.normal = 0;
_.vertices = null;
function createFromURL(dest, url, onLoad){
  var $e0, ex, rb;
  rb = $RequestBuilder(new RequestBuilder, ($clinit_142() , GET), url);
  $setCallback(rb, $ObjIO$1(new ObjIO$1, dest, onLoad));
  try {
    throwIfNull('callback', rb.callback);
    $doSend(rb, rb.requestData, rb.callback);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 5)) {
      ex = $e0;
      throw $RuntimeException_1(new RuntimeException, ex);
    }
     else 
      throw $e0;
  }
  return dest;
}

function parseFace(tokens){
  var i, indices, normal, vertices;
  vertices = initDim(_3I_classLit, 150, -1, tokens.length - 1, 1);
  normal = -1;
  if (tokens.length > 1) {
    indices = $split(tokens[1], '/', 0);
    indices.length > 2 && (normal = __parseAndValidateInt(indices[2], 10, -2147483648, 2147483647) - 1);
  }
  for (i = 1; i < tokens.length; ++i) {
    vertices[i - 1] = parseFacePoint(tokens[i]) - 1;
  }
  return $Face(new Face, vertices, normal);
}

function parseFacePoint(token){
  var cutoff;
  cutoff = token.indexOf(fromCodePoint(47));
  if (cutoff == -1) {
    return __parseAndValidateInt(token, 10, -2147483648, 2147483647);
  }
   else {
    return __parseAndValidateInt(token.substr(0, cutoff - 0), 10, -2147483648, 2147483647);
  }
}

function parseObjFile(contents){
  var faces, normals, strLine, strLine$array, strLine$index, strLine$max, strLines, tokens, vertices, x, y, z, x_0, y_0, z_0;
  vertices = $ArrayList(new ArrayList);
  normals = $ArrayList(new ArrayList);
  faces = $ArrayList(new ArrayList);
  strLines = $split(contents, '\n', 0);
  for (strLine$array = strLines , strLine$index = 0 , strLine$max = strLine$array.length; strLine$index < strLine$max; ++strLine$index) {
    strLine = strLine$array[strLine$index];
    tokens = $split($trim(strLine), ' ', 0);
    $equals_5(tokens[0], 'v')?$add_3(vertices, (x = __parseAndValidateDouble(tokens[1]) , y = __parseAndValidateDouble(tokens[2]) , z = __parseAndValidateDouble(tokens[3]) , $Point3D_0(new Point3D, x, y, z))):$equals_5(tokens[0], 'vn')?$add_3(normals, (x_0 = __parseAndValidateDouble(tokens[1]) , y_0 = __parseAndValidateDouble(tokens[2]) , z_0 = __parseAndValidateDouble(tokens[3]) , $Point3D_0(new Point3D, x_0, y_0, z_0))):$equals_5(tokens[0], 'f') && $add_3(faces, parseFace(tokens));
  }
  return $ObjWireFrame_0(new ObjWireFrame, dynamicCast($toArray_0(vertices, initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, 0, 0)), 13), dynamicCast($toArray_0(normals, initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, 0, 0)), 13), dynamicCast($toArray_0(faces, initDim(_3Lcar_orientor_client_wfio_obj_Face_2_classLit, 137, 26, 0, 0)), 14));
}

function $ObjIO$1(this$static, val$dest, val$onLoad){
  this$static.val$dest = val$dest;
  this$static.val$onLoad = val$onLoad;
  return this$static;
}

function getClass_21(){
  return Lcar_orientor_client_wfio_obj_ObjIO$1_2_classLit;
}

function onError_0(request, exception){
  throw $RuntimeException_1(new RuntimeException, exception);
}

function onResponseReceived_0(request, response){
  var temp;
  temp = parseObjFile(response.val$xmlHttpRequest.responseText);
  this.val$dest.vertices = temp.vertices;
  this.val$dest.normals = temp.normals;
  this.val$dest.faces = temp.faces;
  !!this.val$onLoad && $execute(this.val$onLoad);
}

function ObjIO$1(){
}

_ = ObjIO$1.prototype = new Object_0;
_.getClass$ = getClass_21;
_.onError = onError_0;
_.onResponseReceived = onResponseReceived_0;
_.typeId$ = 0;
_.val$dest = null;
_.val$onLoad = null;
function $ObjWireFrame(this$static){
  $ObjWireFrame_0(this$static, initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, 0, 0), initDim(_3Lcar_orientor_math_Point3D_2_classLit, 138, 27, 0, 0), initDim(_3Lcar_orientor_client_wfio_obj_Face_2_classLit, 137, 26, 0, 0));
  return this$static;
}

function $ObjWireFrame_0(this$static, vertices, normals, faces){
  this$static.vertices = vertices;
  this$static.normals = normals;
  this$static.faces = faces;
  return this$static;
}

function getClass_22(){
  return Lcar_orientor_client_wfio_obj_ObjWireFrame_2_classLit;
}

function toString_3(){
  return 'ObjWireFrame: [\n  Vertices = ' + deepToString(this.vertices, $HashSet(new HashSet)) + ',\n  Normals = ' + deepToString(this.normals, $HashSet(new HashSet)) + ',\n  Faces = ' + deepToString(this.faces, $HashSet(new HashSet)) + '\n]';
}

function ObjWireFrame(){
}

_ = ObjWireFrame.prototype = new Object_0;
_.getClass$ = getClass_22;
_.toString$ = toString_3;
_.typeId$ = 21;
_.faces = null;
_.normals = null;
_.vertices = null;
function $initWidget(this$static, widget){
  if (this$static.widget) {
    throw $IllegalStateException_0(new IllegalStateException, 'Composite.initWidget() may only be called once.');
  }
  $removeFromParent(widget);
  $setElement(this$static, widget.element);
  this$static.widget = widget;
  $setParent(widget, this$static);
}

function getClass_23(){
  return Lcom_google_gwt_user_client_ui_Composite_2_classLit;
}

function isAttached_0(){
  if (this.widget) {
    return this.widget.attached;
  }
  return false;
}

function onAttach_0(){
  if (this.eventsToSink != -1) {
    $sinkEvents(this.widget, this.eventsToSink);
    this.eventsToSink = -1;
  }
  $onAttach(this.widget);
  this.element.__listener = this;
}

function onBrowserEvent_0(event_0){
  $onBrowserEvent(this, event_0);
  $onBrowserEvent(this.widget, event_0);
}

function onDetach_0(){
  $onDetach(this.widget);
}

function Composite(){
}

_ = Composite.prototype = new Widget;
_.getClass$ = getClass_23;
_.isAttached = isAttached_0;
_.onAttach = onAttach_0;
_.onBrowserEvent = onBrowserEvent_0;
_.onDetach = onDetach_0;
_.typeId$ = 22;
_.widget = null;
function $clinit_25(){
  $clinit_25 = nullMethod;
  $clearImpl(new HashMap);
}

function $Slider(this$static){
  $clinit_25();
  $initWidget(this$static, $SliderImplGeneral$SliderImplWidget(new SliderImplGeneral$SliderImplWidget));
  this$static.widget.element.min = 0;
  this$static.widget.element.max = 100;
  return this$static;
}

function $setValue(this$static, value){
  this$static.widget.element.value = value;
}

function getClass_24(){
  return Lcar_orientor_input_Slider_2_classLit;
}

function Slider(){
}

_ = Slider.prototype = new Composite;
_.getClass$ = getClass_24;
_.typeId$ = 23;
function $FocusWidget(this$static, elem){
  this$static.element = elem;
  this$static.element.tabIndex = 0;
  return this$static;
}

function $setElement_0(this$static, elem){
  this$static.element = elem;
  this$static.element.tabIndex = 0;
}

function getClass_25(){
  return Lcom_google_gwt_user_client_ui_FocusWidget_2_classLit;
}

function FocusWidget(){
}

_ = FocusWidget.prototype = new Widget;
_.getClass$ = getClass_25;
_.typeId$ = 24;
function $SliderImplGeneral$SliderImplWidget(this$static){
  $FocusWidget(this$static, $createElement(($clinit_53() , $doc), 'input'));
  this$static.element.setAttribute('type', 'range');
  $sinkEvents(this$static, 1024);
  $addHandler(this$static, $SliderImplGeneral$SliderImplWidget$1(new SliderImplGeneral$SliderImplWidget$1, this$static), ($clinit_86() , $clinit_86() , TYPE));
  return this$static;
}

function getClass_26(){
  return Lcar_orientor_input_SliderImplGeneral$SliderImplWidget_2_classLit;
}

function SliderImplGeneral$SliderImplWidget(){
}

_ = SliderImplGeneral$SliderImplWidget.prototype = new FocusWidget;
_.getClass$ = getClass_26;
_.typeId$ = 25;
function $SliderImplGeneral$SliderImplWidget$1(this$static, this$1){
  this$static.this$1 = this$1;
  return this$static;
}

function getClass_27(){
  return Lcar_orientor_input_SliderImplGeneral$SliderImplWidget$1_2_classLit;
}

function onChange_0(event_0){
  fire_0(this.this$1, $Double(new Double, parseFloat(this.this$1.element.value)));
}

function SliderImplGeneral$SliderImplWidget$1(){
}

_ = SliderImplGeneral$SliderImplWidget$1.prototype = new Object_0;
_.getClass$ = getClass_27;
_.onChange = onChange_0;
_.typeId$ = 26;
_.this$1 = null;
function $Matrix3D_0(this$static){
  this$static.m11 = 1;
  this$static.m12 = 0;
  this$static.m13 = 0;
  this$static.m21 = 0;
  this$static.m22 = 1;
  this$static.m23 = 0;
  this$static.m31 = 0;
  this$static.m32 = 0;
  this$static.m33 = 1;
  return this$static;
}

function getClass_28(){
  return Lcar_orientor_math_Matrix3D_2_classLit;
}

function toString_4(){
  return '[[' + this.m11 + ', ' + this.m12 + ', ' + this.m13 + ']\n [' + this.m21 + ', ' + this.m22 + ', ' + this.m23 + ']\n [' + this.m31 + ', ' + this.m32 + ', ' + this.m33 + ']]';
}

function Matrix3D(){
}

_ = Matrix3D.prototype = new Object_0;
_.getClass$ = getClass_28;
_.toString$ = toString_4;
_.typeId$ = 27;
_.m11 = 0;
_.m12 = 0;
_.m13 = 0;
_.m21 = 0;
_.m22 = 0;
_.m23 = 0;
_.m31 = 0;
_.m32 = 0;
_.m33 = 0;
function $Point3D(this$static){
  this$static.x = 0;
  this$static.y = 0;
  this$static.z = 0;
  return this$static;
}

function $Point3D_0(this$static, x, y, z){
  this$static.x = x;
  this$static.y = y;
  this$static.z = z;
  return this$static;
}

function $dot(this$static, other){
  return this$static.x * other.x + this$static.y * other.y + this$static.z * other.z;
}

function $multiply(this$static, mat){
  var tx, ty, tz;
  tx = this$static.x;
  ty = this$static.y;
  tz = this$static.z;
  this$static.x = tx * mat.m11 + ty * mat.m12 + tz * mat.m13;
  this$static.y = tx * mat.m21 + ty * mat.m22 + tz * mat.m23;
  this$static.z = tx * mat.m31 + ty * mat.m32 + tz * mat.m33;
}

function $setPoint(this$static, other){
  this$static.x = other.x;
  this$static.y = other.y;
  this$static.z = other.z;
}

function equals_0(obj){
  if (this === (obj == null?null:obj)) {
    return true;
  }
  if (obj == null) {
    return false;
  }
  if (Lcar_orientor_math_Point3D_2_classLit != (obj.typeMarker$ == nullMethod || obj.typeId$ == 2?obj.getClass$():Lcom_google_gwt_core_client_JavaScriptObject_2_classLit)) {
    return false;
  }
  throwClassCastExceptionUnlessNull(obj);
  return this.x == null.nullField && this.y == null.nullField && this.y == null.nullField;
}

function getClass_29(){
  return Lcar_orientor_math_Point3D_2_classLit;
}

function hashCode_1(){
  return ~~Math.max(Math.min($Double(new Double, this.x).value_0, 2147483647), -2147483648) ^ ~~Math.max(Math.min($Double(new Double, this.y).value_0, 2147483647), -2147483648) ^ ~~Math.max(Math.min($Double(new Double, this.z).value_0, 2147483647), -2147483648);
}

function toString_5(){
  return '(' + this.x + ', ' + this.y + ', ' + this.z + ')';
}

function Point3D(){
}

_ = Point3D.prototype = new Object_0;
_.equals$ = equals_0;
_.getClass$ = getClass_29;
_.hashCode$ = hashCode_1;
_.toString$ = toString_5;
_.typeId$ = 28;
_.x = 0;
_.y = 0;
_.z = 0;
function $Throwable(this$static, message, cause){
  $fillInStackTrace();
  this$static.cause = cause;
  this$static.detailMessage = message;
  return this$static;
}

function $initCause(this$static, cause){
  if (this$static.cause) {
    throw $IllegalStateException_0(new IllegalStateException, "Can't overwrite cause");
  }
  if (cause == this$static) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, 'Self-causation not permitted');
  }
  this$static.cause = cause;
  return this$static;
}

function $printStackTrace(this$static){
  var causeMessage, currentCause, msg;
  msg = $StringBuffer(new StringBuffer);
  currentCause = this$static;
  while (currentCause) {
    causeMessage = currentCause.getMessage();
    currentCause != this$static && ($appendNonNull(msg.data_0, 'Caused by: ') , undefined);
    $append_2(msg, currentCause.getClass$().typeName);
    $appendNonNull(msg.data_0, ': ');
    $append_1(msg.data_0, causeMessage == null?'(No exception detail)':causeMessage);
    $appendNonNull(msg.data_0, '\n');
    currentCause = currentCause.cause;
  }
}

function $setStackTrace(stackTrace){
  var c, copy, i;
  copy = initDim(_3Ljava_lang_StackTraceElement_2_classLit, 159, 42, stackTrace.length, 0);
  for (i = 0 , c = stackTrace.length; i < c; ++i) {
    if (!stackTrace[i]) {
      throw $NullPointerException(new NullPointerException);
    }
    copy[i] = stackTrace[i];
  }
}

function $toString(this$static){
  var className, msg;
  className = this$static.getClass$().typeName;
  msg = this$static.getMessage();
  if (msg != null) {
    return className + ': ' + msg;
  }
   else {
    return className;
  }
}

function getClass_30(){
  return Ljava_lang_Throwable_2_classLit;
}

function getMessage(){
  return this.detailMessage;
}

function toString_6(){
  return $toString(this);
}

function Throwable(){
}

_ = Throwable.prototype = new Object_0;
_.getClass$ = getClass_30;
_.getMessage = getMessage;
_.toString$ = toString_6;
_.typeId$ = 29;
_.cause = null;
_.detailMessage = null;
function getClass_31(){
  return Ljava_lang_Exception_2_classLit;
}

function Exception(){
}

_ = Exception.prototype = new Throwable;
_.getClass$ = getClass_31;
_.typeId$ = 30;
function $RuntimeException(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function $RuntimeException_0(this$static, message, cause){
  $fillInStackTrace();
  this$static.cause = cause;
  this$static.detailMessage = message;
  return this$static;
}

function $RuntimeException_1(this$static, cause){
  $fillInStackTrace();
  this$static.detailMessage = !cause?null:$toString(cause);
  this$static.cause = cause;
  return this$static;
}

function getClass_32(){
  return Ljava_lang_RuntimeException_2_classLit;
}

function RuntimeException(){
}

_ = RuntimeException.prototype = new Exception;
_.getClass$ = getClass_32;
_.typeId$ = 31;
function $JavaScriptException(this$static, e){
  $fillInStackTrace();
  this$static.e = e;
  $createStackTrace(this$static);
  return this$static;
}

function getClass_33(){
  return Lcom_google_gwt_core_client_JavaScriptException_2_classLit;
}

function getDescription(e){
  if (e != null && e.typeMarker$ != nullMethod && e.typeId$ != 2) {
    return getDescription0(dynamicCastJso(e));
  }
   else {
    return e + '';
  }
}

function getDescription0(e){
  return e == null?null:e.message;
}

function getMessage_0(){
  return this.message_0 == null && (this.name_0 = getName(this.e) , this.description = getDescription(this.e) , this.message_0 = '(' + this.name_0 + '): ' + this.description + getProperties(this.e) , undefined) , this.message_0;
}

function getName(e){
  if (e == null) {
    return 'null';
  }
   else if (e != null && e.typeMarker$ != nullMethod && e.typeId$ != 2) {
    return getName0(dynamicCastJso(e));
  }
   else if (e != null && canCast(e.typeId$, 1)) {
    return 'String';
  }
   else {
    return (e.typeMarker$ == nullMethod || e.typeId$ == 2?e.getClass$():Lcom_google_gwt_core_client_JavaScriptObject_2_classLit).typeName;
  }
}

function getName0(e){
  return e == null?null:e.name;
}

function getProperties(e){
  return e != null && e.typeMarker$ != nullMethod && e.typeId$ != 2?getProperties0(dynamicCastJso(e)):'';
}

function getProperties0(e){
  var result = '';
  try {
    for (prop in e) {
      if (prop != 'name' && prop != 'message' && prop != 'toString') {
        try {
          result += '\n ' + prop + ': ' + e[prop];
        }
         catch (ignored) {
        }
      }
    }
  }
   catch (ignored) {
  }
  return result;
}

function JavaScriptException(){
}

_ = JavaScriptException.prototype = new RuntimeException;
_.getClass$ = getClass_33;
_.getMessage = getMessage_0;
_.typeId$ = 32;
_.description = null;
_.e = null;
_.message_0 = null;
_.name_0 = null;
function equals__devirtual$(this$static, other){
  return this$static.typeMarker$ == nullMethod || this$static.typeId$ == 2?this$static.equals$(other):(this$static == null?null:this$static) === (other == null?null:other);
}

function hashCode__devirtual$(this$static){
  return this$static.typeMarker$ == nullMethod || this$static.typeId$ == 2?this$static.hashCode$():this$static.$H || (this$static.$H = ++sNextHashId);
}

function toString__devirtual$(this$static){
  return this$static.typeMarker$ == nullMethod || this$static.typeId$ == 2?this$static.toString$():this$static.toString?this$static.toString():'[JavaScriptObject]';
}

function getClass_35(){
  return Lcom_google_gwt_core_client_Scheduler_2_classLit;
}

function Scheduler(){
}

_ = Scheduler.prototype = new Object_0;
_.getClass$ = getClass_35;
_.typeId$ = 0;
function entry_0(jsFunction){
  return function(){
    return entry0(jsFunction, this, arguments);
  }
  ;
}

function entry0(jsFunction, thisObj, arguments_0){
  var initialEntry;
  initialEntry = entryDepth++ == 0;
  try {
    return jsFunction.apply(thisObj, arguments_0);
  }
   finally {
    initialEntry && $flushFinallyCommands(($clinit_45() , INSTANCE));
    --entryDepth;
  }
}

function getHashCode(o){
  return o.$H || (o.$H = ++sNextHashId);
}

var entryDepth = 0, sNextHashId = 0;
function $clinit_45(){
  $clinit_45 = nullMethod;
  INSTANCE = $SchedulerImpl(new SchedulerImpl);
}

function $SchedulerImpl(this$static){
  $clinit_45();
  this$static.flusher = $SchedulerImpl$1(new SchedulerImpl$1, this$static);
  $SchedulerImpl$2(new SchedulerImpl$2, this$static);
  this$static.deferredCommands = [];
  this$static.incrementalCommands = [];
  this$static.finallyCommands = [];
  return this$static;
}

function $flushFinallyCommands(this$static){
  var oldFinally;
  oldFinally = this$static.finallyCommands;
  this$static.finallyCommands = [];
  runScheduledTasks(oldFinally, this$static.finallyCommands);
}

function $flushPostEventPumpCommands(this$static){
  var oldDeferred;
  oldDeferred = this$static.deferredCommands;
  this$static.deferredCommands = [];
  runScheduledTasks(oldDeferred, this$static.incrementalCommands);
  this$static.incrementalCommands = runRepeatingTasks(this$static.incrementalCommands);
}

function $isWorkQueued(this$static){
  return this$static.deferredCommands.length > 0 || this$static.incrementalCommands.length > 0;
}

function execute(cmd){
  return cmd.execute();
}

function getClass_36(){
  return Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit;
}

function runRepeatingTasks(tasks){
  var canceledSomeTasks, i, length_0, newTasks, start, t;
  canceledSomeTasks = false;
  length_0 = tasks.length;
  start = (new Date).getTime();
  while ((new Date).getTime() - start < 100) {
    for (i = 0; i < length_0; ++i) {
      t = tasks[i];
      if (!t) {
        continue;
      }
      if (!t[0].execute()) {
        tasks[i] = null;
        canceledSomeTasks = true;
      }
    }
  }
  if (canceledSomeTasks) {
    newTasks = [];
    for (i = 0; i < length_0; ++i) {
      if (!tasks[i]) {
        continue;
      }
      newTasks[newTasks.length] = tasks[i];
    }
    return newTasks;
  }
   else {
    return tasks;
  }
}

function runScheduledTasks(tasks, rescheduled){
  var $e0, i, j, t;
  for (i = 0 , j = tasks.length; i < j; ++i) {
    t = tasks[i];
    try {
      t[1]?t[0].execute() && (rescheduled[rescheduled.length] = t , undefined):t[0].nullMethod();
    }
     catch ($e0) {
      $e0 = caught_0($e0);
      if (!instanceOf($e0, 8))
        throw $e0;
    }
  }
}

function scheduleFixedDelayImpl(cmd, delayMs){
  $clinit_45();
  $wnd.setTimeout(function(){
    var ret = $entry(execute)(cmd);
    ret && $wnd.setTimeout(arguments.callee, delayMs);
  }
  , delayMs);
}

function SchedulerImpl(){
}

_ = SchedulerImpl.prototype = new Scheduler;
_.getClass$ = getClass_36;
_.typeId$ = 0;
_.flushRunning = false;
_.shouldBeRunning = false;
var INSTANCE;
function $SchedulerImpl$1(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function execute_0(){
  this.this$0.flushRunning = true;
  $flushPostEventPumpCommands(this.this$0);
  this.this$0.flushRunning = false;
  return this.this$0.shouldBeRunning = $isWorkQueued(this.this$0);
}

function getClass_37(){
  return Lcom_google_gwt_core_client_impl_SchedulerImpl$1_2_classLit;
}

function SchedulerImpl$1(){
}

_ = SchedulerImpl$1.prototype = new Object_0;
_.execute = execute_0;
_.getClass$ = getClass_37;
_.typeId$ = 0;
_.this$0 = null;
function $SchedulerImpl$2(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function execute_1(){
  this.this$0.flushRunning && scheduleFixedDelayImpl(this.this$0.flusher, 1);
  return this.this$0.shouldBeRunning;
}

function getClass_38(){
  return Lcom_google_gwt_core_client_impl_SchedulerImpl$2_2_classLit;
}

function SchedulerImpl$2(){
}

_ = SchedulerImpl$2.prototype = new Object_0;
_.execute = execute_1;
_.getClass$ = getClass_38;
_.typeId$ = 0;
_.this$0 = null;
function extractNameFromToString(fnToString){
  var index, start, toReturn;
  toReturn = '';
  fnToString = $trim(fnToString);
  index = fnToString.indexOf('(');
  if (index != -1) {
    start = fnToString.indexOf('function') == 0?8:0;
    toReturn = $trim(fnToString.substr(start, index - start));
  }
  return toReturn.length > 0?toReturn:'anonymous';
}

--></script>
<script><!--
function $collect(this$static){
  var seen = {};
  var toReturn = [];
  var callee = arguments.callee.caller.caller;
  while (callee) {
    var name_0 = this$static.extractName(callee.toString());
    toReturn.push(name_0);
    var keyName = ':' + name_0;
    var withThisName = seen[keyName];
    if (withThisName) {
      var i, j;
      for (i = 0 , j = withThisName.length; i < j; i++) {
        if (withThisName[i] === callee) {
          return toReturn;
        }
      }
    }
    (withThisName || (seen[keyName] = [])).push(callee);
    callee = callee.caller;
  }
  return toReturn;
}

function $createStackTrace(e){
  var i, j, stack, stackTrace;
  stack = (instanceOfJso(e.e)?dynamicCastJso(e.e):null , []);
  stackTrace = initDim(_3Ljava_lang_StackTraceElement_2_classLit, 159, 42, stack.length, 0);
  for (i = 0 , j = stackTrace.length; i < j; ++i) {
    stackTrace[i] = $StackTraceElement(new StackTraceElement, 'Unknown', stack[i], 'Unknown source', 0);
  }
  $setStackTrace(stackTrace);
}

function $fillInStackTrace(){
  var i, j, stack, stackTrace;
  stack = $collect(new StackTraceCreator$Collector);
  stackTrace = initDim(_3Ljava_lang_StackTraceElement_2_classLit, 159, 42, stack.length, 0);
  for (i = 0 , j = stackTrace.length; i < j; ++i) {
    stackTrace[i] = $StackTraceElement(new StackTraceElement, 'Unknown', stack[i], 'Unknown source', 0);
  }
  $setStackTrace(stackTrace);
}

function extractName(fnToString){
  return extractNameFromToString(fnToString);
}

function getClass_39(){
  return Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit;
}

function StackTraceCreator$Collector(){
}

_ = StackTraceCreator$Collector.prototype = new Object_0;
_.extractName = extractName;
_.getClass$ = getClass_39;
_.typeId$ = 0;
function $append(a, x){
  a[a.explicitLength++] = x;
}

function $append_0(a, x){
  a[a.explicitLength++] = x;
}

function $append_1(a, x){
  a[a.explicitLength++] = x == null?'null':x;
}

function $appendNonNull(a, x){
  a[a.explicitLength++] = x;
}

function $replace(a, start, end, toInsert){
  var s;
  s = $takeString(a);
  $appendNonNull(a, s.substr(0, start - 0));
  a[a.explicitLength++] = toInsert == null?'null':toInsert;
  $appendNonNull(a, s.substr(end, s.length - end));
}

function $takeString(a){
  var s = a.join('');
  a.length = a.explicitLength = 0;
  return s;
}

function $toString_1(a){
  var s;
  s = $takeString(a);
  a[a.explicitLength++] = s;
  return s;
}

function $clinit_53(){
  $clinit_53 = nullMethod;
  $clinit_55();
  new DOMImplIE6;
}

function $createScriptElement(doc, source){
  var elem;
  elem = $createElement(doc, 'script');
  elem.text = source;
  return elem;
}

function $getFirstChildElement(elem){
  var child = elem.firstChild;
  while (child && child.nodeType != 1)
    child = child.nextSibling;
  return child;
}

function $getScrollLeft(doc){
  return $getScrollLeft_1(($clinit_53() , $equals_5(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body));
}

function $getScrollTop(doc){
  return ($equals_5(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body).scrollTop || 0;
}

function getClass_40(){
  return Lcom_google_gwt_dom_client_DOMImpl_2_classLit;
}

function DOMImpl(){
}

_ = DOMImpl.prototype = new Object_0;
_.getClass$ = getClass_40;
_.typeId$ = 0;
function $clinit_54(){
  $clinit_54 = nullMethod;
  $clinit_53();
}

function $createElement(doc, tagName){
  var container, elem;
  if (tagName.indexOf(':') != -1) {
    container = (!doc.__gwt_container && (doc.__gwt_container = doc.createElement('div')) , doc.__gwt_container);
    container.innerHTML = '<' + tagName + '/>' || '';
    elem = $getFirstChildElement(($clinit_53() , container));
    container.removeChild(elem);
    return elem;
  }
  return doc.createElement(tagName);
}

function $getBoundingClientRectLeft(elem){
  try {
    return elem.getBoundingClientRect().left;
  }
   catch (e) {
    return 0;
  }
}

function $getBoundingClientRectTop(elem){
  try {
    return elem.getBoundingClientRect().top;
  }
   catch (e) {
    return 0;
  }
}

function $isOrHasChild(parent_0, child){
  if (parent_0.nodeType != 1 && parent_0.nodeType != 9) {
    return parent_0 == child;
  }
  if (child.nodeType != 1) {
    child = child.parentNode;
    if (!child) {
      return false;
    }
  }
  return parent_0 === child || parent_0.contains(child);
}

function getClass_41(){
  return Lcom_google_gwt_dom_client_DOMImplTrident_2_classLit;
}

function DOMImplTrident(){
}

_ = DOMImplTrident.prototype = new DOMImpl;
_.getClass$ = getClass_41;
_.typeId$ = 0;
var currentEventTarget = null;
function $clinit_55(){
  $clinit_55 = nullMethod;
  $clinit_54();
}

function $getScrollLeft_1(elem){
  if (elem.currentStyle.direction == 'rtl') {
    return (elem.scrollLeft || 0) - ((elem.scrollWidth || 0) - elem.clientWidth);
  }
  return elem.scrollLeft || 0;
}

function $getZoomMultiple(doc){
  var bodyOffset, parent_0;
  if ($equals_5(doc.compatMode, 'CSS1Compat')) {
    return 1;
  }
   else {
    bodyOffset = doc.body.offsetWidth || 0;
    return bodyOffset == 0?1:~~(((parent_0 = ($clinit_53() , doc.body).parentNode , (!parent_0 || parent_0.nodeType != 1) && (parent_0 = null) , parent_0).offsetWidth || 0) / bodyOffset);
  }
}

function getClass_42(){
  return Lcom_google_gwt_dom_client_DOMImplIE6_2_classLit;
}

function DOMImplIE6(){
}

_ = DOMImplIE6.prototype = new DOMImplTrident;
_.getClass$ = getClass_42;
_.typeId$ = 0;
function $clinit_60(){
  $clinit_60 = nullMethod;
  executeBackgroundImageCacheCommand();
}

function addTop(srcImgMap, img, src){
  img.src = src;
  if (img.complete) {
    return;
  }
  img.__kids = [];
  img.__pendingSrc = src;
  srcImgMap[src] = img;
  var _onload = img.onload, _onerror = img.onerror, _onabort = img.onabort;
  function finish(_originalHandler){
    var kids = img.__kids;
    img.__cleanup();
    window.setTimeout(function(){
      for (var i = 0; i < kids.length; ++i) {
        var kid = kids[i];
        if (kid.__pendingSrc == src) {
          kid.src = src;
          kid.__pendingSrc = null;
        }
      }
    }
    , 0);
    _originalHandler && _originalHandler.call(img);
  }

  img.onload = function(){
    finish(_onload);
  }
  ;
  img.onerror = function(){
    finish(_onerror);
  }
  ;
  img.onabort = function(){
    finish(_onabort);
  }
  ;
  img.__cleanup = function(){
    img.onload = _onload;
    img.onerror = _onerror;
    img.onabort = _onabort;
    img.__cleanup = img.__pendingSrc = img.__kids = null;
    delete srcImgMap[src];
  }
  ;
}

function executeBackgroundImageCacheCommand(){
  try {
    $doc.execCommand('BackgroundImageCache', false, true);
  }
   catch (e) {
  }
}

function removeChild(parent_0, child){
  var kids = parent_0.__kids;
  for (var i = 0, c = kids.length; i < c; ++i) {
    if (kids[i] === child) {
      kids.splice(i, 1);
      child.__pendingSrc = null;
      return;
    }
  }
}

function removeTop(srcImgMap, img){
  var src = img.__pendingSrc;
  var kids = img.__kids;
  img.__cleanup();
  if (img = kids[0]) {
    img.__pendingSrc = null;
    addTop(srcImgMap, img, src);
    if (img.__pendingSrc) {
      kids.splice(0, 1);
      img.__kids = kids;
    }
     else {
      for (var i = 1, c = kids.length; i < c; ++i) {
        kids[i].src = src;
        kids[i].__pendingSrc = null;
      }
    }
  }
}

function setImgSrc(img, src){
  $clinit_60();
  var oldSrc, top_0;
  if ($equals_5(img.__pendingSrc || img.src, src)) {
    return;
  }
  !srcImgMap_0 && (srcImgMap_0 = {});
  oldSrc = img.__pendingSrc;
  if (oldSrc != null) {
    top_0 = srcImgMap_0[oldSrc];
    top_0 == img?removeTop(srcImgMap_0, top_0):removeChild(top_0, img);
  }
  top_0 = srcImgMap_0[src];
  !top_0?addTop(srcImgMap_0, img, src):(top_0.__kids.push(img) , img.__pendingSrc = top_0.__pendingSrc , undefined);
}

var srcImgMap_0 = null;
function compareTo(p0){
  return this.ordinal - dynamicCast(p0, 39).ordinal;
}

function equals_2(other){
  return this === (other == null?null:other);
}

function getClass_43(){
  return Ljava_lang_Enum_2_classLit;
}

function hashCode_3(){
  return this.$H || (this.$H = ++sNextHashId);
}

function toString_8(){
  return this.name_0;
}

function Enum(){
}

_ = Enum.prototype = new Object_0;
_.compareTo$ = compareTo;
_.equals$ = equals_2;
_.getClass$ = getClass_43;
_.hashCode$ = hashCode_3;
_.toString$ = toString_8;
_.typeId$ = 33;
_.name_0 = null;
_.ordinal = 0;
function $clinit_68(){
  $clinit_68 = nullMethod;
  NONE = $Style$Display$1(new Style$Display$1, 'NONE', 0);
  BLOCK = $Style$Display$2(new Style$Display$2, 'BLOCK', 1);
  INLINE = $Style$Display$3(new Style$Display$3, 'INLINE', 2);
  INLINE_BLOCK = $Style$Display$4(new Style$Display$4, 'INLINE_BLOCK', 3);
}

function getClass_44(){
  return Lcom_google_gwt_dom_client_Style$Display_2_classLit;
}

function values_0(){
  $clinit_68();
  return initValues(_3Lcom_google_gwt_dom_client_Style$Display_2_classLit, 140, 28, [NONE, BLOCK, INLINE, INLINE_BLOCK]);
}

function Style$Display(){
}

_ = Style$Display.prototype = new Enum;
_.getClass$ = getClass_44;
_.typeId$ = 34;
var BLOCK, INLINE, INLINE_BLOCK, NONE;
function $clinit_69(){
  $clinit_69 = nullMethod;
  $clinit_68();
}

function $Style$Display$1(this$static, enum$name, enum$ordinal){
  $clinit_69();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_45(){
  return Lcom_google_gwt_dom_client_Style$Display$1_2_classLit;
}

function Style$Display$1(){
}

_ = Style$Display$1.prototype = new Style$Display;
_.getClass$ = getClass_45;
_.typeId$ = 35;
function $clinit_70(){
  $clinit_70 = nullMethod;
  $clinit_68();
}

function $Style$Display$2(this$static, enum$name, enum$ordinal){
  $clinit_70();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_46(){
  return Lcom_google_gwt_dom_client_Style$Display$2_2_classLit;
}

function Style$Display$2(){
}

_ = Style$Display$2.prototype = new Style$Display;
_.getClass$ = getClass_46;
_.typeId$ = 36;
function $clinit_71(){
  $clinit_71 = nullMethod;
  $clinit_68();
}

function $Style$Display$3(this$static, enum$name, enum$ordinal){
  $clinit_71();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_47(){
  return Lcom_google_gwt_dom_client_Style$Display$3_2_classLit;
}

function Style$Display$3(){
}

_ = Style$Display$3.prototype = new Style$Display;
_.getClass$ = getClass_47;
_.typeId$ = 37;
function $clinit_72(){
  $clinit_72 = nullMethod;
  $clinit_68();
}

function $Style$Display$4(this$static, enum$name, enum$ordinal){
  $clinit_72();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_48(){
  return Lcom_google_gwt_dom_client_Style$Display$4_2_classLit;
}

function Style$Display$4(){
}

_ = Style$Display$4.prototype = new Style$Display;
_.getClass$ = getClass_48;
_.typeId$ = 38;
function $clinit_74(){
  $clinit_74 = nullMethod;
  PX = $Style$Unit$1(new Style$Unit$1, 'PX', 0);
  PCT = $Style$Unit$2(new Style$Unit$2, 'PCT', 1);
  EM = $Style$Unit$3(new Style$Unit$3, 'EM', 2);
  EX = $Style$Unit$4(new Style$Unit$4, 'EX', 3);
  PT = $Style$Unit$5(new Style$Unit$5, 'PT', 4);
  PC = $Style$Unit$6(new Style$Unit$6, 'PC', 5);
  IN = $Style$Unit$7(new Style$Unit$7, 'IN', 6);
  CM = $Style$Unit$8(new Style$Unit$8, 'CM', 7);
  MM = $Style$Unit$9(new Style$Unit$9, 'MM', 8);
}

function getClass_49(){
  return Lcom_google_gwt_dom_client_Style$Unit_2_classLit;
}

function values_1(){
  $clinit_74();
  return initValues(_3Lcom_google_gwt_dom_client_Style$Unit_2_classLit, 142, 30, [PX, PCT, EM, EX, PT, PC, IN, CM, MM]);
}

function Style$Unit(){
}

_ = Style$Unit.prototype = new Enum;
_.getClass$ = getClass_49;
_.typeId$ = 39;
var CM, EM, EX, IN, MM, PC, PCT, PT, PX;
function $clinit_75(){
  $clinit_75 = nullMethod;
  $clinit_74();
}

function $Style$Unit$1(this$static, enum$name, enum$ordinal){
  $clinit_75();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_50(){
  return Lcom_google_gwt_dom_client_Style$Unit$1_2_classLit;
}

function Style$Unit$1(){
}

_ = Style$Unit$1.prototype = new Style$Unit;
_.getClass$ = getClass_50;
_.typeId$ = 40;
function $clinit_76(){
  $clinit_76 = nullMethod;
  $clinit_74();
}

function $Style$Unit$2(this$static, enum$name, enum$ordinal){
  $clinit_76();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_51(){
  return Lcom_google_gwt_dom_client_Style$Unit$2_2_classLit;
}

function Style$Unit$2(){
}

_ = Style$Unit$2.prototype = new Style$Unit;
_.getClass$ = getClass_51;
_.typeId$ = 41;
function $clinit_77(){
  $clinit_77 = nullMethod;
  $clinit_74();
}

function $Style$Unit$3(this$static, enum$name, enum$ordinal){
  $clinit_77();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_52(){
  return Lcom_google_gwt_dom_client_Style$Unit$3_2_classLit;
}

function Style$Unit$3(){
}

_ = Style$Unit$3.prototype = new Style$Unit;
_.getClass$ = getClass_52;
_.typeId$ = 42;
function $clinit_78(){
  $clinit_78 = nullMethod;
  $clinit_74();
}

function $Style$Unit$4(this$static, enum$name, enum$ordinal){
  $clinit_78();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_53(){
  return Lcom_google_gwt_dom_client_Style$Unit$4_2_classLit;
}

function Style$Unit$4(){
}

_ = Style$Unit$4.prototype = new Style$Unit;
_.getClass$ = getClass_53;
_.typeId$ = 43;
function $clinit_79(){
  $clinit_79 = nullMethod;
  $clinit_74();
}

function $Style$Unit$5(this$static, enum$name, enum$ordinal){
  $clinit_79();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_54(){
  return Lcom_google_gwt_dom_client_Style$Unit$5_2_classLit;
}

function Style$Unit$5(){
}

_ = Style$Unit$5.prototype = new Style$Unit;
_.getClass$ = getClass_54;
_.typeId$ = 44;
function $clinit_80(){
  $clinit_80 = nullMethod;
  $clinit_74();
}

function $Style$Unit$6(this$static, enum$name, enum$ordinal){
  $clinit_80();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_55(){
  return Lcom_google_gwt_dom_client_Style$Unit$6_2_classLit;
}

function Style$Unit$6(){
}

_ = Style$Unit$6.prototype = new Style$Unit;
_.getClass$ = getClass_55;
_.typeId$ = 45;
function $clinit_81(){
  $clinit_81 = nullMethod;
  $clinit_74();
}

function $Style$Unit$7(this$static, enum$name, enum$ordinal){
  $clinit_81();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_56(){
  return Lcom_google_gwt_dom_client_Style$Unit$7_2_classLit;
}

function Style$Unit$7(){
}

_ = Style$Unit$7.prototype = new Style$Unit;
_.getClass$ = getClass_56;
_.typeId$ = 46;
function $clinit_82(){
  $clinit_82 = nullMethod;
  $clinit_74();
}

function $Style$Unit$8(this$static, enum$name, enum$ordinal){
  $clinit_82();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_57(){
  return Lcom_google_gwt_dom_client_Style$Unit$8_2_classLit;
}

function Style$Unit$8(){
}

_ = Style$Unit$8.prototype = new Style$Unit;
_.getClass$ = getClass_57;
_.typeId$ = 47;
function $clinit_83(){
  $clinit_83 = nullMethod;
  $clinit_74();
}

function $Style$Unit$9(this$static, enum$name, enum$ordinal){
  $clinit_83();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_58(){
  return Lcom_google_gwt_dom_client_Style$Unit$9_2_classLit;
}

function Style$Unit$9(){
}

_ = Style$Unit$9.prototype = new Style$Unit;
_.getClass$ = getClass_58;
_.typeId$ = 48;
function getClass_59(){
  return Lcom_google_gwt_event_shared_GwtEvent_2_classLit;
}

function toString_9(){
  return 'An event type';
}

function GwtEvent(){
}

_ = GwtEvent.prototype = new Object_0;
_.getClass$ = getClass_59;
_.toString$ = toString_9;
_.typeId$ = 0;
_.dead = false;
_.source = null;
function fireNativeEvent(nativeEvent, handlerSource, relativeElem){
  var currentNative, currentRelativeElem, typeKey;
  if (registered) {
    typeKey = dynamicCast(registered.map[($clinit_53() , nativeEvent).type], 17);
    if (typeKey) {
      currentNative = typeKey.flyweight.nativeEvent;
      currentRelativeElem = typeKey.flyweight.relativeElem;
      typeKey.flyweight.nativeEvent = nativeEvent;
      typeKey.flyweight.relativeElem = relativeElem;
      $fireEvent(handlerSource, typeKey.flyweight);
      typeKey.flyweight.nativeEvent = currentNative;
      typeKey.flyweight.relativeElem = currentRelativeElem;
    }
  }
}

function getAssociatedType(){
  return this.getAssociatedType_0();
}

function getClass_60(){
  return Lcom_google_gwt_event_dom_client_DomEvent_2_classLit;
}

function DomEvent(){
}

_ = DomEvent.prototype = new GwtEvent;
_.getAssociatedType = getAssociatedType;
_.getClass$ = getClass_60;
_.typeId$ = 0;
_.nativeEvent = null;
_.relativeElem = null;
var registered = null;
function $clinit_86(){
  $clinit_86 = nullMethod;
  TYPE = $DomEvent$Type(new DomEvent$Type, 'change', ($clinit_86() , new ChangeEvent));
}

function dispatch(p0){
  dynamicCast(p0, 15).onChange(this);
}

function getAssociatedType_0(){
  return TYPE;
}

function getClass_61(){
  return Lcom_google_gwt_event_dom_client_ChangeEvent_2_classLit;
}

function ChangeEvent(){
}

_ = ChangeEvent.prototype = new DomEvent;
_.dispatch = dispatch;
_.getAssociatedType_0 = getAssociatedType_0;
_.getClass$ = getClass_61;
_.typeId$ = 0;
var TYPE;
function $clinit_88(){
  $clinit_88 = nullMethod;
  TYPE_0 = $DomEvent$Type(new DomEvent$Type, 'click', ($clinit_88() , new ClickEvent));
}

function dispatch_0(p0){
  $reset(dynamicCast(p0, 16).this$0);
}

function getAssociatedType_1(){
  return TYPE_0;
}

function getClass_62(){
  return Lcom_google_gwt_event_dom_client_ClickEvent_2_classLit;
}

function ClickEvent(){
}

_ = ClickEvent.prototype = new DomEvent;
_.dispatch = dispatch_0;
_.getAssociatedType_0 = getAssociatedType_1;
_.getClass$ = getClass_62;
_.typeId$ = 0;
var TYPE_0;
function $GwtEvent$Type(this$static){
  this$static.index_0 = ++nextHashCode;
  return this$static;
}

function getClass_63(){
  return Lcom_google_gwt_event_shared_GwtEvent$Type_2_classLit;
}

function hashCode_4(){
  return this.index_0;
}

function toString_10(){
  return 'Event type';
}

function GwtEvent$Type(){
}

_ = GwtEvent$Type.prototype = new Object_0;
_.getClass$ = getClass_63;
_.hashCode$ = hashCode_4;
_.toString$ = toString_10;
_.typeId$ = 0;
_.index_0 = 0;
var nextHashCode = 0;
function $DomEvent$Type(this$static, eventName, flyweight){
  this$static.index_0 = ++nextHashCode;
  this$static.flyweight = flyweight;
  !registered && (registered = $PrivateMap(new PrivateMap));
  registered.map[eventName] = this$static;
  this$static.name_0 = eventName;
  return this$static;
}

function getClass_64(){
  return Lcom_google_gwt_event_dom_client_DomEvent$Type_2_classLit;
}

function DomEvent$Type(){
}

_ = DomEvent$Type.prototype = new GwtEvent$Type;
_.getClass$ = getClass_64;
_.typeId$ = 49;
_.flyweight = null;
_.name_0 = null;
function $clinit_111(){
  $clinit_111 = nullMethod;
  TYPE_1 = $DomEvent$Type(new DomEvent$Type, 'load', ($clinit_111() , new LoadEvent));
}

function $dispatch_0(handler){
  $setImage(handler.this$0.movableImageView, handler.this$0.image);
  $draw(handler.this$0);
}

function dispatch_1(p0){
  $dispatch_0(dynamicCast(p0, 18));
}

function getAssociatedType_2(){
  return TYPE_1;
}

function getClass_65(){
  return Lcom_google_gwt_event_dom_client_LoadEvent_2_classLit;
}

function LoadEvent(){
}

_ = LoadEvent.prototype = new DomEvent;
_.dispatch = dispatch_1;
_.getAssociatedType_0 = getAssociatedType_2;
_.getClass$ = getClass_65;
_.typeId$ = 0;
var TYPE_1;
function $getRelativeX(this$static, target){
  var e, doc;
  e = this$static.nativeEvent;
  return (($clinit_53() , e).clientX || 0) - (doc = target.ownerDocument , round_int(Math.floor($getBoundingClientRectLeft(target) / $getZoomMultiple(doc) + $getScrollLeft_1($equals_5(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body)))) + $getScrollLeft_1(target) + $getScrollLeft(target.ownerDocument);
}

function $getRelativeY(this$static, target){
  var e, doc;
  e = this$static.nativeEvent;
  return (($clinit_53() , e).clientY || 0) - (doc = target.ownerDocument , round_int(Math.floor($getBoundingClientRectTop(target) / $getZoomMultiple(doc) + (($equals_5(doc.compatMode, 'CSS1Compat')?doc.documentElement:doc.body).scrollTop || 0)))) + (target.scrollTop || 0) + $getScrollTop(target.ownerDocument);
}

function getClass_66(){
  return Lcom_google_gwt_event_dom_client_MouseEvent_2_classLit;
}

function MouseEvent(){
}

_ = MouseEvent.prototype = new DomEvent;
_.getClass$ = getClass_66;
_.typeId$ = 0;
function $clinit_114(){
  $clinit_114 = nullMethod;
  TYPE_2 = $DomEvent$Type(new DomEvent$Type, 'mousedown', ($clinit_114() , new MouseDownEvent));
}

function dispatch_2(p0){
  dynamicCast(p0, 19).onMouseDown(this);
}

function getAssociatedType_3(){
  return TYPE_2;
}

function getClass_67(){
  return Lcom_google_gwt_event_dom_client_MouseDownEvent_2_classLit;
}

function MouseDownEvent(){
}

_ = MouseDownEvent.prototype = new MouseEvent;
_.dispatch = dispatch_2;
_.getAssociatedType_0 = getAssociatedType_3;
_.getClass$ = getClass_67;
_.typeId$ = 0;
var TYPE_2;
function $clinit_116(){
  $clinit_116 = nullMethod;
  TYPE_3 = $DomEvent$Type(new DomEvent$Type, 'mousemove', ($clinit_116() , new MouseMoveEvent));
}

function dispatch_3(p0){
  dynamicCast(p0, 20).onMouseMove(this);
}

function getAssociatedType_4(){
  return TYPE_3;
}

function getClass_68(){
  return Lcom_google_gwt_event_dom_client_MouseMoveEvent_2_classLit;
}

function MouseMoveEvent(){
}

_ = MouseMoveEvent.prototype = new MouseEvent;
_.dispatch = dispatch_3;
_.getAssociatedType_0 = getAssociatedType_4;
_.getClass$ = getClass_68;
_.typeId$ = 0;
var TYPE_3;
function $clinit_118(){
  $clinit_118 = nullMethod;
  TYPE_4 = $DomEvent$Type(new DomEvent$Type, 'mouseup', ($clinit_118() , new MouseUpEvent));
}

function dispatch_4(p0){
  dynamicCast(p0, 21).onMouseUp(this);
}

function getAssociatedType_5(){
  return TYPE_4;
}

function getClass_69(){
  return Lcom_google_gwt_event_dom_client_MouseUpEvent_2_classLit;
}

function MouseUpEvent(){
}

_ = MouseUpEvent.prototype = new MouseEvent;
_.dispatch = dispatch_4;
_.getAssociatedType_0 = getAssociatedType_5;
_.getClass$ = getClass_69;
_.typeId$ = 0;
var TYPE_4;
function $PrivateMap(this$static){
  this$static.map = {};
  return this$static;
}

function getClass_70(){
  return Lcom_google_gwt_event_dom_client_PrivateMap_2_classLit;
}

function PrivateMap(){
}

_ = PrivateMap.prototype = new Object_0;
_.getClass$ = getClass_70;
_.typeId$ = 0;
_.map = null;
function dispatch_5(p0){
  dynamicCast(p0, 22).onClose(this);
}

function fire(source){
  var event_0;
  if (TYPE_5) {
    event_0 = new CloseEvent;
    $fireEvent_0(source, event_0);
  }
}

function getAssociatedType_6(){
  return TYPE_5;
}

function getClass_71(){
  return Lcom_google_gwt_event_logical_shared_CloseEvent_2_classLit;
}

function CloseEvent(){
}

_ = CloseEvent.prototype = new GwtEvent;
_.dispatch = dispatch_5;
_.getAssociatedType = getAssociatedType_6;
_.getClass$ = getClass_71;
_.typeId$ = 0;
var TYPE_5 = null;
function $ValueChangeEvent(this$static, value){
  this$static.value_0 = value;
  return this$static;
}

function dispatch_6(p0){
  dynamicCast(p0, 23).onValueChange(this);
}

function fire_0(source, value){
  var event_0;
  if (TYPE_6) {
    event_0 = $ValueChangeEvent(new ValueChangeEvent, value);
    source.fireEvent_0(event_0);
  }
}

function getAssociatedType_7(){
  return TYPE_6;
}

function getClass_72(){
  return Lcom_google_gwt_event_logical_shared_ValueChangeEvent_2_classLit;
}

function getType(){
  !TYPE_6 && (TYPE_6 = $GwtEvent$Type(new GwtEvent$Type));
  return TYPE_6;
}

function ValueChangeEvent(){
}

_ = ValueChangeEvent.prototype = new GwtEvent;
_.dispatch = dispatch_6;
_.getAssociatedType = getAssociatedType_7;
_.getClass$ = getClass_72;
_.typeId$ = 0;
_.value_0 = null;
var TYPE_6 = null;
function getClass_73(){
  return Lcom_google_gwt_event_shared_DefaultHandlerRegistration_2_classLit;
}

function DefaultHandlerRegistration(){
}

_ = DefaultHandlerRegistration.prototype = new Object_0;
_.getClass$ = getClass_73;
_.typeId$ = 0;
function $HandlerManager(this$static, source){
  this$static.registry = $HandlerManager$HandlerRegistry(new HandlerManager$HandlerRegistry);
  this$static.source = source;
  this$static.isReverseOrder = false;
  return this$static;
}

function $addHandler_0(this$static, type, handler){
  this$static.firingDepth > 0?$defer(this$static, $HandlerManager$1(new HandlerManager$1, this$static, type, handler)):$addHandler_1(this$static.registry, type, handler);
  return new DefaultHandlerRegistration;
}

function $defer(this$static, command){
  !this$static.deferredDeltas && (this$static.deferredDeltas = $ArrayList(new ArrayList));
  $add_3(this$static.deferredDeltas, command);
}

function $fireEvent_0(this$static, event_0){
  var oldSource;
  if (event_0.dead) {
    event_0.dead = false;
    event_0.source = null;
  }
  oldSource = event_0.source;
  event_0.source = this$static.source;
  try {
    ++this$static.firingDepth;
    $fireEvent_1(this$static.registry, event_0, this$static.isReverseOrder);
  }
   finally {
    --this$static.firingDepth;
    this$static.firingDepth == 0 && $handleQueuedAddsAndRemoves(this$static);
  }
  if (oldSource == null) {
    event_0.dead = true;
    event_0.source = null;
  }
   else {
    event_0.source = oldSource;
  }
}

function $handleQueuedAddsAndRemoves(this$static){
  var c, c$iterator;
  if (this$static.deferredDeltas) {
    try {
      for (c$iterator = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, this$static.deferredDeltas); c$iterator.i < c$iterator.this$0.size;) {
        c = dynamicCast($next_2(c$iterator), 24);
        $addHandler_1(c.this$0.registry, c.val$type, c.val$handler);
      }
    }
     finally {
      this$static.deferredDeltas = null;
    }
  }
}

function fireEvent_1(event_0){
  $fireEvent_0(this, event_0);
}

function getClass_74(){
  return Lcom_google_gwt_event_shared_HandlerManager_2_classLit;
}

function HandlerManager(){
}

_ = HandlerManager.prototype = new Object_0;
_.fireEvent_0 = fireEvent_1;
_.getClass$ = getClass_74;
_.typeId$ = 0;
_.deferredDeltas = null;
_.firingDepth = 0;
_.isReverseOrder = false;
_.registry = null;
_.source = null;
function $HandlerManager$1(this$static, this$0, val$type, val$handler){
  this$static.this$0 = this$0;
  this$static.val$type = val$type;
  this$static.val$handler = val$handler;
  return this$static;
}

function getClass_75(){
  return Lcom_google_gwt_event_shared_HandlerManager$1_2_classLit;
}

function HandlerManager$1(){
}

_ = HandlerManager$1.prototype = new Object_0;
_.getClass$ = getClass_75;
_.typeId$ = 50;
_.this$0 = null;
_.val$handler = null;
_.val$type = null;
function $HandlerManager$HandlerRegistry(this$static){
  this$static.map = $HashMap(new HashMap);
  return this$static;
}

function $addHandler_1(this$static, type, handler){
  var l;
  l = dynamicCast($get_1(this$static.map, type), 25);
  if (!l) {
    l = $ArrayList(new ArrayList);
    $put(this$static.map, type, l);
  }
  setCheck(l.array, l.size++, handler);
}

function $fireEvent_1(this$static, event_0, isReverseOrder){
  var count, handler, i, type, l, l_0, l_1;
  type = event_0.getAssociatedType();
  count = (l = dynamicCast($get_1(this$static.map, type), 25) , !l?0:l.size);
  if (isReverseOrder) {
    for (i = count - 1; i >= 0; --i) {
      handler = (l_0 = dynamicCast($get_1(this$static.map, type), 25) , dynamicCast((checkIndex(i, l_0.size) , l_0.array[i]), 47));
      event_0.dispatch(handler);
    }
  }
   else {
    for (i = 0; i < count; ++i) {
      handler = (l_1 = dynamicCast($get_1(this$static.map, type), 25) , dynamicCast((checkIndex(i, l_1.size) , l_1.array[i]), 47));
      event_0.dispatch(handler);
    }
  }
}

function getClass_76(){
  return Lcom_google_gwt_event_shared_HandlerManager$HandlerRegistry_2_classLit;
}

function HandlerManager$HandlerRegistry(){
}

_ = HandlerManager$HandlerRegistry.prototype = new Object_0;
_.getClass$ = getClass_76;
_.typeId$ = 0;
function $Request(this$static, xmlHttpRequest, timeoutMillis, callback){
  if (!xmlHttpRequest) {
    throw $NullPointerException(new NullPointerException);
  }
  if (!callback) {
    throw $NullPointerException(new NullPointerException);
  }
  if (timeoutMillis < 0) {
    throw $IllegalArgumentException(new IllegalArgumentException);
  }
  this$static.timeoutMillis = timeoutMillis;
  this$static.xmlHttpRequest = xmlHttpRequest;
  if (timeoutMillis > 0) {
    this$static.timer = $Request$3(new Request$3, this$static, callback);
    $schedule(this$static.timer, timeoutMillis);
  }
   else {
    this$static.timer = null;
  }
  return this$static;
}

function $cancel(this$static){
  var xmlHttp;
  if (this$static.xmlHttpRequest) {
    xmlHttp = this$static.xmlHttpRequest;
    this$static.xmlHttpRequest = null;
    $clearOnReadyStateChange(xmlHttp);
    xmlHttp.abort();
    !!this$static.timer && $cancel_0(this$static.timer);
  }
}

--></script>
<script><!--
function $fireOnResponseReceived(this$static, callback){
  var errorMsg, exception, response, xhr;
  if (!this$static.xmlHttpRequest) {
    return;
  }
  !!this$static.timer && $cancel_0(this$static.timer);
  xhr = this$static.xmlHttpRequest;
  this$static.xmlHttpRequest = null;
  errorMsg = $getBrowserSpecificFailure(xhr);
  if (errorMsg != null) {
    exception = $RuntimeException(new RuntimeException, errorMsg);
    callback.onError(this$static, exception);
  }
   else {
    response = $Request$1(new Request$1, xhr);
    callback.onResponseReceived(this$static, response);
  }
}

function $fireOnTimeout(this$static, callback){
  if (!this$static.xmlHttpRequest) {
    return;
  }
  $cancel(this$static);
  callback.onError(this$static, $RequestTimeoutException(new RequestTimeoutException, this$static.timeoutMillis));
}

function $getBrowserSpecificFailure(xhr){
  try {
    if (xhr.status === undefined) {
      return 'XmlHttpRequest.status == undefined, please see Safari bug http://bugs.webkit.org/show_bug.cgi?id=3810 for more details';
    }
    return null;
  }
   catch (e) {
    return 'Unable to read XmlHttpRequest.status; likely causes are a networking error or bad cross-domain request. Please see https://bugzilla.mozilla.org/show_bug.cgi?id=238559 for more details';
  }
}

function getClass_77(){
  return Lcom_google_gwt_http_client_Request_2_classLit;
}

function Request(){
}

_ = Request.prototype = new Object_0;
_.getClass$ = getClass_77;
_.typeId$ = 0;
_.timeoutMillis = 0;
_.timer = null;
_.xmlHttpRequest = null;
function getClass_78(){
  return Lcom_google_gwt_http_client_Response_2_classLit;
}

function Response(){
}

_ = Response.prototype = new Object_0;
_.getClass$ = getClass_78;
_.typeId$ = 0;
function $Request$1(this$static, val$xmlHttpRequest){
  this$static.val$xmlHttpRequest = val$xmlHttpRequest;
  return this$static;
}

function getClass_79(){
  return Lcom_google_gwt_http_client_Request$1_2_classLit;
}

function Request$1(){
}

_ = Request$1.prototype = new Response;
_.getClass$ = getClass_79;
_.typeId$ = 0;
_.val$xmlHttpRequest = null;
function $clinit_140(){
  $clinit_140 = nullMethod;
  timers = $ArrayList(new ArrayList);
  addCloseHandler(new Timer$1);
}

function $cancel_0(this$static){
  this$static.isRepeating?($wnd.clearInterval(this$static.timerId) , undefined):($wnd.clearTimeout(this$static.timerId) , undefined);
  $remove_6(timers, this$static);
}

function $schedule(this$static, delayMillis){
  if (delayMillis <= 0) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, 'must be positive');
  }
  $cancel_0(this$static);
  this$static.isRepeating = false;
  this$static.timerId = createTimeout(this$static, delayMillis);
  $add_3(timers, this$static);
}

function createTimeout(timer, delay){
  return $wnd.setTimeout($entry(function(){
    timer.fire();
  }
  ), delay);
}

function fire_1(){
  !this.isRepeating && $remove_6(timers, this);
  $fireOnTimeout(dynamicCast(this, 49).this$0, dynamicCast(this, 49).val$callback);
}

function getClass_80(){
  return Lcom_google_gwt_user_client_Timer_2_classLit;
}

function Timer(){
}

_ = Timer.prototype = new Object_0;
_.fire = fire_1;
_.getClass$ = getClass_80;
_.typeId$ = 0;
_.isRepeating = false;
_.timerId = 0;
var timers;
function $clinit_141(){
  $clinit_141 = nullMethod;
  $clinit_140();
}

function $Request$3(this$static, this$0, val$callback){
  $clinit_141();
  this$static.this$0 = this$0;
  this$static.val$callback = val$callback;
  return this$static;
}

function getClass_81(){
  return Lcom_google_gwt_http_client_Request$3_2_classLit;
}

function Request$3(){
}

_ = Request$3.prototype = new Timer;
_.getClass$ = getClass_81;
_.typeId$ = 51;
_.this$0 = null;
_.val$callback = null;
function $clinit_142(){
  $clinit_142 = nullMethod;
  $RequestBuilder$Method(new RequestBuilder$Method, 'DELETE');
  GET = $RequestBuilder$Method(new RequestBuilder$Method, 'GET');
  $RequestBuilder$Method(new RequestBuilder$Method, 'HEAD');
  $RequestBuilder$Method(new RequestBuilder$Method, 'POST');
  $RequestBuilder$Method(new RequestBuilder$Method, 'PUT');
}

function $RequestBuilder(this$static, httpMethod, url){
  $clinit_142();
  $RequestBuilder_0(this$static, !httpMethod?null:httpMethod.name_0, url);
  return this$static;
}

function $RequestBuilder_0(this$static, httpMethod, url){
  $clinit_142();
  throwIfEmptyOrNull('httpMethod', httpMethod);
  throwIfEmptyOrNull('url', url);
  this$static.httpMethod = httpMethod;
  this$static.url = url;
  return this$static;
}

function $doSend(this$static, requestData, callback){
  var $e0, e, request, requestPermissionException, xmlHttpRequest;
  xmlHttpRequest = create_0();
  try {
    xmlHttpRequest.open(this$static.httpMethod, this$static.url, true);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 48)) {
      e = $e0;
      requestPermissionException = $RequestPermissionException(new RequestPermissionException, this$static.url);
      $initCause(requestPermissionException, $RequestException(new RequestException, e.getMessage()));
      throw requestPermissionException;
    }
     else 
      throw $e0;
  }
  xmlHttpRequest.setRequestHeader('Content-Type', 'text/plain; charset=utf-8');
  request = $Request(new Request, xmlHttpRequest, this$static.timeoutMillis, callback);
  $setOnReadyStateChange(xmlHttpRequest, $RequestBuilder$1(new RequestBuilder$1, request, callback));
  try {
    xmlHttpRequest.send(requestData);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 48)) {
      e = $e0;
      throw $RequestException(new RequestException, e.getMessage());
    }
     else 
      throw $e0;
  }
  return request;
}

function $setCallback(this$static, callback){
  throwIfNull('callback', callback);
  this$static.callback = callback;
}

function getClass_82(){
  return Lcom_google_gwt_http_client_RequestBuilder_2_classLit;
}

function RequestBuilder(){
}

_ = RequestBuilder.prototype = new Object_0;
_.getClass$ = getClass_82;
_.typeId$ = 0;
_.callback = null;
_.httpMethod = null;
_.requestData = null;
_.timeoutMillis = 0;
_.url = null;
var GET;
function $RequestBuilder$1(this$static, val$request, val$callback){
  this$static.val$request = val$request;
  this$static.val$callback = val$callback;
  return this$static;
}

function getClass_83(){
  return Lcom_google_gwt_http_client_RequestBuilder$1_2_classLit;
}

function onReadyStateChange(xhr){
  if (xhr.readyState == 4) {
    $clearOnReadyStateChange(xhr);
    $fireOnResponseReceived(this.val$request, this.val$callback);
  }
}

function RequestBuilder$1(){
}

_ = RequestBuilder$1.prototype = new Object_0;
_.getClass$ = getClass_83;
_.onReadyStateChange = onReadyStateChange;
_.typeId$ = 0;
_.val$callback = null;
_.val$request = null;
function $RequestBuilder$Method(this$static, name_0){
  this$static.name_0 = name_0;
  return this$static;
}

function getClass_84(){
  return Lcom_google_gwt_http_client_RequestBuilder$Method_2_classLit;
}

function toString_11(){
  return this.name_0;
}

function RequestBuilder$Method(){
}

_ = RequestBuilder$Method.prototype = new Object_0;
_.getClass$ = getClass_84;
_.toString$ = toString_11;
_.typeId$ = 0;
_.name_0 = null;
function $RequestException(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_85(){
  return Lcom_google_gwt_http_client_RequestException_2_classLit;
}

function RequestException(){
}

_ = RequestException.prototype = new Exception;
_.getClass$ = getClass_85;
_.typeId$ = 52;
function $RequestPermissionException(this$static, url){
  $fillInStackTrace();
  this$static.detailMessage = 'The URL ' + url + ' is invalid or violates the same-origin security restriction';
  return this$static;
}

function getClass_86(){
  return Lcom_google_gwt_http_client_RequestPermissionException_2_classLit;
}

function RequestPermissionException(){
}

_ = RequestPermissionException.prototype = new RequestException;
_.getClass$ = getClass_86;
_.typeId$ = 53;
function $RequestTimeoutException(this$static, timeoutMillis){
  $fillInStackTrace();
  this$static.detailMessage = 'A request timeout has expired after ' + timeoutMillis + ' ms';
  return this$static;
}

function getClass_87(){
  return Lcom_google_gwt_http_client_RequestTimeoutException_2_classLit;
}

function RequestTimeoutException(){
}

_ = RequestTimeoutException.prototype = new RequestException;
_.getClass$ = getClass_87;
_.typeId$ = 54;
function throwIfEmptyOrNull(name_0, value){
  throwIfNull(name_0, value);
  if (0 == $trim(value).length) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, name_0 + ' cannot be empty');
  }
}

function throwIfNull(name_0, value){
  if (null == value) {
    throw $NullPointerException_0(new NullPointerException, name_0 + ' cannot be null');
  }
}

function createFrom(array, length_0){
  var a, result;
  a = array;
  result = createFromSeed(0, length_0);
  initValues(a.arrayClass$, a.typeId$, a.queryId$, result);
  return result;
}

function createFromSeed(seedType, length_0){
  var array = new Array(length_0);
  if (seedType > 0) {
    var value = [null, 0, false, [0, 0]][seedType];
    for (var i = 0; i < length_0; ++i) {
      array[i] = value;
    }
  }
  return array;
}

function getClass_88(){
  return this.arrayClass$;
}

function initDim(arrayClass, typeId, queryId, length_0, seedType){
  var result;
  result = createFromSeed(seedType, length_0);
  $clinit_154();
  wrapArray(result, expandoNames_0, expandoValues_0);
  result.arrayClass$ = arrayClass;
  result.typeId$ = typeId;
  result.queryId$ = queryId;
  return result;
}

function initValues(arrayClass, typeId, queryId, array){
  $clinit_154();
  wrapArray(array, expandoNames_0, expandoValues_0);
  array.arrayClass$ = arrayClass;
  array.typeId$ = typeId;
  array.queryId$ = queryId;
  return array;
}

function setCheck(array, index, value){
  if (value != null) {
    if (array.queryId$ > 0 && !canCastUnsafe(value.typeId$, array.queryId$)) {
      throw $ArrayStoreException(new ArrayStoreException);
    }
    if (array.queryId$ < 0 && (value.typeMarker$ == nullMethod || value.typeId$ == 2)) {
      throw $ArrayStoreException(new ArrayStoreException);
    }
  }
  return array[index] = value;
}

function Array_0(){
}

_ = Array_0.prototype = new Object_0;
_.getClass$ = getClass_88;
_.typeId$ = 0;
_.arrayClass$ = null;
_.length = 0;
_.queryId$ = 0;
function $clinit_154(){
  $clinit_154 = nullMethod;
  expandoNames_0 = [];
  expandoValues_0 = [];
  initExpandos(new Array_0, expandoNames_0, expandoValues_0);
}

function initExpandos(protoType, expandoNames, expandoValues){
  var i = 0, value;
  for (var name_0 in protoType) {
    if (value = protoType[name_0]) {
      expandoNames[i] = name_0;
      expandoValues[i] = value;
      ++i;
    }
  }
}

function wrapArray(array, expandoNames, expandoValues){
  $clinit_154();
  for (var i = 0, c = expandoNames.length; i < c; ++i) {
    array[expandoNames[i]] = expandoValues[i];
  }
}

var expandoNames_0, expandoValues_0;
function canCast(srcId, dstId){
  return srcId && !!typeIdArray[srcId][dstId];
}

function canCastUnsafe(srcId, dstId){
  return srcId && typeIdArray[srcId][dstId];
}

function dynamicCast(src, dstId){
  if (src != null && !canCastUnsafe(src.typeId$, dstId)) {
    throw $ClassCastException(new ClassCastException);
  }
  return src;
}

function dynamicCastJso(src){
  if (src != null && (src.typeMarker$ == nullMethod || src.typeId$ == 2)) {
    throw $ClassCastException(new ClassCastException);
  }
  return src;
}

function instanceOf(src, dstId){
  return src != null && canCast(src.typeId$, dstId);
}

function instanceOfJso(src){
  return src != null && src.typeMarker$ != nullMethod && src.typeId$ != 2;
}

function round_int(x){
  return ~~Math.max(Math.min(x, 2147483647), -2147483648);
}

function throwClassCastExceptionUnlessNull(o){
  if (o != null) {
    throw $ClassCastException(new ClassCastException);
  }
  return o;
}

var typeIdArray = [{}, {}, {1:1, 11:1, 36:1, 38:1}, {33:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {23:1, 47:1}, {18:1, 47:1}, {16:1, 47:1}, {23:1, 47:1}, {23:1, 47:1}, {15:1, 47:1}, {31:1}, {19:1, 20:1, 21:1, 47:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {19:1, 20:1, 21:1, 47:1}, {26:1}, {4:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {15:1, 47:1}, {37:1}, {27:1, 37:1}, {11:1, 43:1}, {9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1, 48:1}, {11:1, 38:1, 39:1}, {11:1, 28:1, 29:1, 38:1, 39:1}, {11:1, 28:1, 29:1, 38:1, 39:1}, {11:1, 28:1, 29:1, 38:1, 39:1}, {11:1, 28:1, 29:1, 38:1, 39:1}, {11:1, 28:1, 29:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {11:1, 30:1, 38:1, 39:1}, {17:1}, {24:1}, {49:1}, {5:1, 9:1, 11:1, 43:1}, {5:1, 9:1, 11:1, 43:1}, {5:1, 9:1, 11:1, 43:1}, {22:1, 47:1}, {31:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {8:1, 9:1, 11:1, 43:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1, 52:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1}, {31:1, 32:1, 33:1, 34:1, 51:1, 52:1}, {22:1, 47:1}, {31:1, 32:1, 33:1, 34:1, 51:1, 52:1}, {8:1, 9:1, 11:1, 43:1}, {53:1}, {53:1}, {53:1}, {53:1}, {7:1, 53:1}, {7:1, 53:1}, {53:1}, {8:1, 9:1, 11:1, 43:1}, {53:1}, {53:1, 54:1}, {6:1, 53:1}, {53:1}, {53:1}, {11:1, 55:1}, {11:1, 35:1, 38:1, 39:1}, {31:1, 32:1, 33:1, 34:1}, {56:1}, {11:1, 57:1}, {11:1, 57:1}, {10:1, 11:1}, {10:1, 11:1}, {8:1, 9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1}, {11:1, 43:1}, {11:1, 43:1}, {2:1, 11:1, 38:1}, {8:1, 9:1, 11:1, 43:1}, {11:1, 41:1}, {3:1, 11:1, 38:1, 41:1}, {8:1, 9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1}, {11:1, 38:1, 40:1, 41:1}, {8:1, 9:1, 11:1, 43:1}, {8:1, 9:1, 11:1, 43:1}, {11:1, 42:1}, {36:1}, {36:1}, {8:1, 9:1, 11:1, 43:1}, {60:1}, {60:1}, {61:1}, {61:1}, {44:1}, {44:1}, {44:1}, {59:1}, {61:1}, {11:1, 25:1, 37:1, 59:1}, {59:1}, {60:1}, {61:1}, {61:1}, {44:1}, {59:1}, {11:1, 37:1, 58:1, 60:1}, {11:1, 37:1, 61:1}, {44:1}, {8:1, 9:1, 11:1, 43:1}, {11:1, 60:1}, {61:1}, {44:1, 45:1}, {11:1, 38:1, 39:1, 46:1}, {11:1, 38:1, 39:1, 46:1}, {11:1, 38:1, 39:1, 46:1}, {11:1, 38:1, 39:1, 46:1}, {11:1, 14:1, 37:1, 62:1}, {11:1, 13:1, 37:1, 62:1}, {11:1, 37:1, 63:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 12:1, 37:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 64:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 50:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}, {11:1, 37:1, 62:1}];
function init(){
  !!$stats && $stats({moduleName:$moduleName, sessionId:$sessionId, subSystem:'startup', evtGroup:'moduleStartup', millis:(new Date).getTime(), type:'onModuleLoadStart', className:'car.orientor.client.CarOrientor'});
  $onModuleLoad($CarOrientor(new CarOrientor));
}

function caught_0(e){
  if (e != null && canCast(e.typeId$, 43)) {
    return e;
  }
  return $JavaScriptException(new JavaScriptException, e);
}

function create(valueLow, valueHigh){
  var diffHigh, diffLow;
  valueHigh %= 1.8446744073709552E19;
  valueLow %= 1.8446744073709552E19;
  diffHigh = valueHigh % 4294967296;
  diffLow = Math.floor(valueLow / 4294967296) * 4294967296;
  valueHigh = valueHigh - diffHigh + diffLow;
  valueLow = valueLow - diffLow + diffHigh;
  while (valueLow < 0) {
    valueLow += 4294967296;
    valueHigh -= 4294967296;
  }
  while (valueLow > 4294967295) {
    valueLow -= 4294967296;
    valueHigh += 4294967296;
  }
  valueHigh = valueHigh % 1.8446744073709552E19;
  while (valueHigh > 9223372032559808512) {
    valueHigh -= 1.8446744073709552E19;
  }
  while (valueHigh < -9223372036854775808) {
    valueHigh += 1.8446744073709552E19;
  }
  return [valueLow, valueHigh];
}

function fromDouble(value){
  if (isNaN(value)) {
    return $clinit_161() , ZERO;
  }
  if (value < -9223372036854775808) {
    return $clinit_161() , MIN_VALUE;
  }
  if (value >= 9223372036854775807) {
    return $clinit_161() , MAX_VALUE;
  }
  if (value > 0) {
    return create(Math.floor(value), 0);
  }
   else {
    return create(Math.ceil(value), 0);
  }
}

function fromInt(value){
  var rebase, result;
  if (value > -129 && value < 128) {
    rebase = value + 128;
    result = ($clinit_160() , boxedValues)[rebase];
    result == null && (result = boxedValues[rebase] = internalFromInt(value));
    return result;
  }
  return internalFromInt(value);
}

function internalFromInt(value){
  if (value >= 0) {
    return [value, 0];
  }
   else {
    return [value + 4294967296, -4294967296];
  }
}

function lowBits(a){
  if (a[0] >= 2147483648) {
    return ~~Math.max(Math.min(a[0] - 4294967296, 2147483647), -2147483648);
  }
   else {
    return ~~Math.max(Math.min(a[0], 2147483647), -2147483648);
  }
}

function $clinit_160(){
  $clinit_160 = nullMethod;
  boxedValues = initDim(_3_3D_classLit, 165, 12, 256, 0);
}

var boxedValues;
function $clinit_161(){
  $clinit_161 = nullMethod;
  Math.log(2);
  MAX_VALUE = P7fffffffffffffff_longLit;
  MIN_VALUE = N8000000000000000_longLit;
  fromInt(-1);
  fromInt(1);
  fromInt(2);
  ZERO = fromInt(0);
}

var MAX_VALUE, MIN_VALUE, ZERO;
function dispatchEvent_0(evt, elem, listener){
  var prevCurrentEvent;
  prevCurrentEvent = currentEvent;
  currentEvent = evt;
  elem == sCaptureElem && $eventGetTypeInt(($clinit_53() , evt).type) == 8192 && (sCaptureElem = null);
  listener.onBrowserEvent(evt);
  currentEvent = prevCurrentEvent;
}

function previewEvent(evt){
  return true;
}

function sinkEvents(elem, eventBits){
  $maybeInitializeEventSystem();
  $sinkEventsImpl(elem, eventBits);
}

var currentEvent = null, sCaptureElem = null;
function sinkEvents_0(elem, eventBits){
  $maybeInitializeEventSystem();
  $sinkEventsImpl(elem, eventBits);
}

function getClass_89(){
  return Lcom_google_gwt_user_client_Timer$1_2_classLit;
}

function onClose(event_0){
  while (($clinit_140() , timers).size > 0) {
    $cancel_0(dynamicCast($get_2(timers, 0), 49));
  }
}

function Timer$1(){
}

_ = Timer$1.prototype = new Object_0;
_.getClass$ = getClass_89;
_.onClose = onClose;
_.typeId$ = 55;
function addCloseHandler(handler){
  maybeInitializeCloseHandlers();
  return addHandler(TYPE_5?TYPE_5:(TYPE_5 = $GwtEvent$Type(new GwtEvent$Type)), handler);
}

function addHandler(type, handler){
  return $addHandler_0(getHandlers(), type, handler);
}

function getHandlers(){
  !handlers && (handlers = $Window$WindowHandlers(new Window$WindowHandlers));
  return handlers;
}

function maybeInitializeCloseHandlers(){
  var scriptElem;
  if (!closeHandlersInitialized) {
    scriptElem = $createScriptElement(($clinit_53() , $doc), (!initWindowCloseHandler && (initWindowCloseHandler = new com_google_gwt_user_client_impl_WindowImplIE_Resources_default_StaticClientBundleGenerator$1) , 'function __gwt_initWindowCloseHandler(beforeunload, unload) {\r\n  var wnd = window\r\n  , oldOnBeforeUnload = wnd.onbeforeunload\r\n  , oldOnUnload = wnd.onunload;\r\n  \r\n  wnd.onbeforeunload = function(evt) {\r\n    var ret, oldRet;\r\n    try {\r\n      ret = beforeunload();\r\n    } finally {\r\n      oldRet = oldOnBeforeUnload && oldOnBeforeUnload(evt);\r\n    }\r\n    // Avoid returning null as IE6 will coerce it into a string.\r\n    // Ensure that "" gets returned properly.\r\n    if (ret != null) {\r\n      return ret;\r\n    }\r\n    if (oldRet != null) {\r\n      return oldRet;\r\n    }\r\n    // returns undefined.\r\n  };\r\n  \r\n  wnd.onunload = function(evt) {\r\n    try {\r\n      unload();\r\n    } finally {\r\n      oldOnUnload && oldOnUnload(evt);\r\n      wnd.onresize = null;\r\n      wnd.onscroll = null;\r\n      wnd.onbeforeunload = null;\r\n      wnd.onunload = null;\r\n    }\r\n  };\r\n  \r\n  // Remove the reference once we\'ve initialize the handler\r\n  wnd.__gwt_initWindowCloseHandler = undefined;\r\n}\r\n'));
    $doc.body.appendChild(scriptElem);
    $wnd.__gwt_initWindowCloseHandler($entry(onClosing), $entry(onClosed));
    $doc.body.removeChild(scriptElem);
    closeHandlersInitialized = true;
  }
}

function onClosed(){
  closeHandlersInitialized && fire(getHandlers());
}

function onClosing(){
  var event_0;
  if (closeHandlersInitialized) {
    event_0 = ($clinit_172() , new Window$ClosingEvent);
    !!handlers && $fireEvent_0(handlers, event_0);
    return null;
  }
  return null;
}

var closeHandlersInitialized = false, handlers = null;
function $clinit_172(){
  $clinit_172 = nullMethod;
  TYPE_7 = $GwtEvent$Type(new GwtEvent$Type);
}

function dispatch_7(p0){
  throwClassCastExceptionUnlessNull(p0);
  null.nullMethod();
}

function getAssociatedType_8(){
  return TYPE_7;
}

function getClass_90(){
  return Lcom_google_gwt_user_client_Window$ClosingEvent_2_classLit;
}

function Window$ClosingEvent(){
}

_ = Window$ClosingEvent.prototype = new GwtEvent;
_.dispatch = dispatch_7;
_.getAssociatedType = getAssociatedType_8;
_.getClass$ = getClass_90;
_.typeId$ = 0;
var TYPE_7;
function ensureParameterMap(){
  var kv, kvPair, kvPair$array, kvPair$index, kvPair$max, qs, queryString, href, hashLoc, questionLoc, regexp;
  if (!paramMap) {
    paramMap = $HashMap(new HashMap);
    queryString = (href = $wnd.location.href , hashLoc = href.lastIndexOf('#') , hashLoc >= 0 && (href = href.substring(0, hashLoc)) , questionLoc = href.lastIndexOf('?') , questionLoc > 0?href.substring(questionLoc):'');
    if (queryString != null && queryString.length > 1) {
      qs = queryString.substr(1, queryString.length - 1);
      for (kvPair$array = $split(qs, '&', 0) , kvPair$index = 0 , kvPair$max = kvPair$array.length; kvPair$index < kvPair$max; ++kvPair$index) {
        kvPair = kvPair$array[kvPair$index];
        kv = $split(kvPair, '=', 2);
        kv.length > 1?$put(paramMap, kv[0], (throwIfNull('encodedURLComponent', kv[1]) , regexp = /\+/g , decodeURIComponent(kv[1].replace(regexp, '%20')))):$put(paramMap, kv[0], '');
      }
    }
  }
}

var paramMap = null;
function $Window$WindowHandlers(this$static){
  this$static.registry = $HandlerManager$HandlerRegistry(new HandlerManager$HandlerRegistry);
  this$static.source = null;
  this$static.isReverseOrder = false;
  return this$static;
}

function getClass_91(){
  return Lcom_google_gwt_user_client_Window$WindowHandlers_2_classLit;
}

function Window$WindowHandlers(){
}

_ = Window$WindowHandlers.prototype = new HandlerManager;
_.getClass$ = getClass_91;
_.typeId$ = 56;
function $eventGetTypeInt(eventType){
  switch (eventType) {
    case 'blur':
      return 4096;
    case 'change':
      return 1024;
    case 'click':
      return 1;
    case 'dblclick':
      return 2;
    case 'focus':
      return 2048;
    case 'keydown':
      return 128;
    case 'keypress':
      return 256;
    case 'keyup':
      return 512;
    case 'load':
      return 32768;
    case 'losecapture':
      return 8192;
    case 'mousedown':
      return 4;
    case 'mousemove':
      return 64;
    case 'mouseout':
      return 32;
    case 'mouseover':
      return 16;
    case 'mouseup':
      return 8;
    case 'scroll':
      return 16384;
    case 'error':
      return 65536;
    case 'mousewheel':
      return 131072;
    case 'DOMMouseScroll':
      return 131072;
    case 'contextmenu':
      return 262144;
    case 'paste':
      return 524288;
  }
}

function $maybeInitializeEventSystem(){
  if (!eventSystemIsInitialized) {
    $initEventSystem();
    eventSystemIsInitialized = true;
  }
}

var eventSystemIsInitialized = false;
function $initEventSystem(){
  $wnd.__gwt_globalEventArray == null && ($wnd.__gwt_globalEventArray = new Array);
  $wnd.__gwt_globalEventArray[$wnd.__gwt_globalEventArray.length] = $entry(function(){
    return previewEvent($wnd.event);
  }
  );
  dispatchEvent_1 = $entry(function(){
    var oldEventTarget = ($clinit_54() , currentEventTarget);
    currentEventTarget = this;
    if ($wnd.event.returnValue == null) {
      $wnd.event.returnValue = true;
      if (!previewEventImpl()) {
        currentEventTarget = oldEventTarget;
        return;
      }
    }
    var listener, curElem = this;
    while (curElem && !(listener = curElem.__listener)) {
      curElem = curElem.parentElement;
    }
    listener && !(listener != null && listener.typeMarker$ != nullMethod && listener.typeId$ != 2) && listener != null && canCast(listener.typeId$, 32) && dispatchEvent_0($wnd.event, curElem, listener);
    currentEventTarget = oldEventTarget;
  }
  );
  dispatchDblClickEvent = $entry(function(){
    var newEvent = $doc.createEventObject();
    $wnd.event.returnValue == null && $wnd.event.srcElement.fireEvent('onclick', newEvent);
    if (this.__eventBits & 2) {
      dispatchEvent_1.call(this);
    }
     else if ($wnd.event.returnValue == null) {
      $wnd.event.returnValue = true;
      previewEventImpl();
    }
  }
  );
  var bodyDispatcher = $entry(function(){
    dispatchEvent_1.call($doc.body);
  }
  );
  var bodyDblClickDispatcher = $entry(function(){
    dispatchDblClickEvent.call($doc.body);
  }
  );
  $doc.body.attachEvent('onclick', bodyDispatcher);
  $doc.body.attachEvent('onmousedown', bodyDispatcher);
  $doc.body.attachEvent('onmouseup', bodyDispatcher);
  $doc.body.attachEvent('onmousemove', bodyDispatcher);
  $doc.body.attachEvent('onmousewheel', bodyDispatcher);
  $doc.body.attachEvent('onkeydown', bodyDispatcher);
  $doc.body.attachEvent('onkeypress', bodyDispatcher);
  $doc.body.attachEvent('onkeyup', bodyDispatcher);
  $doc.body.attachEvent('onfocus', bodyDispatcher);
  $doc.body.attachEvent('onblur', bodyDispatcher);
  $doc.body.attachEvent('ondblclick', bodyDblClickDispatcher);
  $doc.body.attachEvent('oncontextmenu', bodyDispatcher);
}

function $sinkEventsImpl(elem, bits){
  var chMask = (elem.__eventBits || 0) ^ bits;
  elem.__eventBits = bits;
  if (!chMask)
    return;
  chMask & 1 && (elem.onclick = bits & 1?dispatchEvent_1:null);
  chMask & 3 && (elem.ondblclick = bits & 3?dispatchDblClickEvent:null);
  chMask & 4 && (elem.onmousedown = bits & 4?dispatchEvent_1:null);
  chMask & 8 && (elem.onmouseup = bits & 8?dispatchEvent_1:null);
  chMask & 16 && (elem.onmouseover = bits & 16?dispatchEvent_1:null);
  chMask & 32 && (elem.onmouseout = bits & 32?dispatchEvent_1:null);
  chMask & 64 && (elem.onmousemove = bits & 64?dispatchEvent_1:null);
  chMask & 128 && (elem.onkeydown = bits & 128?dispatchEvent_1:null);
  chMask & 256 && (elem.onkeypress = bits & 256?dispatchEvent_1:null);
  chMask & 512 && (elem.onkeyup = bits & 512?dispatchEvent_1:null);
  chMask & 1024 && (elem.onchange = bits & 1024?dispatchEvent_1:null);
  chMask & 2048 && (elem.onfocus = bits & 2048?dispatchEvent_1:null);
  chMask & 4096 && (elem.onblur = bits & 4096?dispatchEvent_1:null);
  chMask & 8192 && (elem.onlosecapture = bits & 8192?dispatchEvent_1:null);
  chMask & 16384 && (elem.onscroll = bits & 16384?dispatchEvent_1:null);
  chMask & 32768 && (elem.onload = bits & 32768?dispatchEvent_1:null);
  chMask & 65536 && (elem.onerror = bits & 65536?dispatchEvent_1:null);
  chMask & 131072 && (elem.onmousewheel = bits & 131072?dispatchEvent_1:null);
  chMask & 262144 && (elem.oncontextmenu = bits & 262144?dispatchEvent_1:null);
  chMask & 524288 && (elem.onpaste = bits & 524288?dispatchEvent_1:null);
}

function previewEventImpl(){
  var isCancelled = false;
  for (var i = 0; i < $wnd.__gwt_globalEventArray.length; i++) {
    !$wnd.__gwt_globalEventArray[i]() && (isCancelled = true);
  }
  return !isCancelled;
}

var dispatchDblClickEvent = null, dispatchEvent_1 = null;
var initWindowCloseHandler = null;
function getClass_92(){
  return Lcom_google_gwt_user_client_impl_com_1google_1gwt_1user_1client_1impl_1WindowImplIE_1Resources_1default_1StaticClientBundleGenerator$1_2_classLit;
}

function com_google_gwt_user_client_impl_WindowImplIE_Resources_default_StaticClientBundleGenerator$1(){
}

_ = com_google_gwt_user_client_impl_WindowImplIE_Resources_default_StaticClientBundleGenerator$1.prototype = new Object_0;
_.getClass$ = getClass_92;
_.typeId$ = 0;
function $add(this$static, child, container){
  $removeFromParent(child);
  $add_2(this$static.children, child);
  container.appendChild(child.element);
  $setParent(child, this$static);
}

function $remove_0(this$static, w){
  var elem, parent_0;
  if (w.parent_0 != this$static) {
    return false;
  }
  try {
    $setParent(w, null);
  }
   finally {
    elem = w.element;
    (parent_0 = ($clinit_53() , elem).parentNode , (!parent_0 || parent_0.nodeType != 1) && (parent_0 = null) , parent_0).removeChild(elem);
    $remove_2(this$static.children, w);
  }
  return true;
}

function getClass_93(){
  return Lcom_google_gwt_user_client_ui_ComplexPanel_2_classLit;
}

function iterator_0(){
  return $WidgetCollection$WidgetIterator(new WidgetCollection$WidgetIterator, this.children);
}

function remove_1(w){
  return $remove_0(this, w);
}

function ComplexPanel(){
}

_ = ComplexPanel.prototype = new Panel;
_.getClass$ = getClass_93;
_.iterator = iterator_0;
_.remove = remove_1;
_.typeId$ = 57;
function $add_0(this$static, w){
  $add(this$static, w, this$static.element);
}

function changeToStaticPositioning(elem){
  elem.style['left'] = '';
  elem.style['top'] = '';
  elem.style['position'] = '';
}

function getClass_94(){
  return Lcom_google_gwt_user_client_ui_AbsolutePanel_2_classLit;
}

--></script>
<script><!--
function remove_2(w){
  var removed;
  removed = $remove_0(this, w);
  removed && changeToStaticPositioning(w.element);
  return removed;
}

function AbsolutePanel(){
}

_ = AbsolutePanel.prototype = new ComplexPanel;
_.getClass$ = getClass_94;
_.remove = remove_2;
_.typeId$ = 58;
function $clinit_183(){
  $clinit_183 = nullMethod;
  attachCommand = new AttachDetachException$1;
  detachCommand = new AttachDetachException$2;
}

function $AttachDetachException(this$static, causes){
  $clinit_183();
  $Throwable(this$static, 'One or more exceptions caught, see full set in AttachDetachException#getCauses', causes.map.size == 0?null:dynamicCast($toArray(causes, initDim(_3Ljava_lang_Throwable_2_classLit, 161, 43, 0, 0)), 50)[0]);
  return this$static;
}

function getClass_95(){
  return Lcom_google_gwt_user_client_ui_AttachDetachException_2_classLit;
}

function tryCommand(hasWidgets, c){
  var old;
  $clinit_183();
  var $e0, caught, e, w, w$iterator;
  caught = null;
  for (w$iterator = hasWidgets.iterator(); w$iterator.hasNext();) {
    w = dynamicCast(w$iterator.next(), 34);
    try {
      c.execute_0(w);
    }
     catch ($e0) {
      $e0 = caught_0($e0);
      if (instanceOf($e0, 43)) {
        e = $e0;
        !caught && (caught = $HashSet(new HashSet));
        old = $put(caught.map, e, caught);
      }
       else 
        throw $e0;
    }
  }
  if (caught) {
    throw $AttachDetachException(new AttachDetachException, caught);
  }
}

function AttachDetachException(){
}

_ = AttachDetachException.prototype = new RuntimeException;
_.getClass$ = getClass_95;
_.typeId$ = 59;
var attachCommand, detachCommand;
function execute_2(w){
  w.onAttach();
}

function getClass_96(){
  return Lcom_google_gwt_user_client_ui_AttachDetachException$1_2_classLit;
}

function AttachDetachException$1(){
}

_ = AttachDetachException$1.prototype = new Object_0;
_.execute_0 = execute_2;
_.getClass$ = getClass_96;
_.typeId$ = 0;
function execute_3(w){
  w.onDetach();
}

function getClass_97(){
  return Lcom_google_gwt_user_client_ui_AttachDetachException$2_2_classLit;
}

function AttachDetachException$2(){
}

_ = AttachDetachException$2.prototype = new Object_0;
_.execute_0 = execute_3;
_.getClass$ = getClass_97;
_.typeId$ = 0;
function $ButtonBase(this$static, elem){
  this$static.element = elem;
  this$static.element.tabIndex = 0;
  return this$static;
}

function getClass_98(){
  return Lcom_google_gwt_user_client_ui_ButtonBase_2_classLit;
}

function ButtonBase(){
}

_ = ButtonBase.prototype = new FocusWidget;
_.getClass$ = getClass_98;
_.typeId$ = 60;
function $Button(this$static, html, handler){
  $ButtonBase(this$static, ($clinit_53() , $doc).createElement("<BUTTON type='button'><\/BUTTON>"));
  this$static.element['className'] = 'gwt-Button';
  this$static.element.innerHTML = html || '';
  $addDomHandler(this$static, handler, ($clinit_88() , $clinit_88() , TYPE_0));
  return this$static;
}

function getClass_99(){
  return Lcom_google_gwt_user_client_ui_Button_2_classLit;
}

function Button(){
}

_ = Button.prototype = new ButtonBase;
_.getClass$ = getClass_99;
_.typeId$ = 61;
function $FlowPanel(this$static){
  this$static.children = $WidgetCollection(new WidgetCollection, this$static);
  this$static.element = $createElement(($clinit_53() , $doc), 'div');
  return this$static;
}

function $add_1(this$static, w){
  $add(this$static, w, this$static.element);
}

function getClass_100(){
  return Lcom_google_gwt_user_client_ui_FlowPanel_2_classLit;
}

function FlowPanel(){
}

_ = FlowPanel.prototype = new ComplexPanel;
_.getClass$ = getClass_100;
_.typeId$ = 62;
function $clinit_198(){
  $clinit_198 = nullMethod;
  $clearImpl(new HashMap);
}

function $Image(this$static, url){
  $clinit_198();
  $Image$UnclippedState_0(new Image$UnclippedState, this$static, url);
  this$static.element['className'] = 'gwt-Image';
  return this$static;
}

function getClass_101(){
  return Lcom_google_gwt_user_client_ui_Image_2_classLit;
}

function Image_0(){
}

_ = Image_0.prototype = new Widget;
_.getClass$ = getClass_101;
_.typeId$ = 63;
function getClass_102(){
  return Lcom_google_gwt_user_client_ui_Image$State_2_classLit;
}

function Image$State(){
}

_ = Image$State.prototype = new Object_0;
_.getClass$ = getClass_102;
_.typeId$ = 0;
function $Image$UnclippedState_0(this$static, image, url){
  $replaceElement_0(image, $createElement(($clinit_53() , $doc), 'img'));
  sinkEvents_0(image.element, 32768);
  $sinkEvents(image, 229501);
  setImgSrc(image.element, url);
  return this$static;
}

function getClass_103(){
  return Lcom_google_gwt_user_client_ui_Image$UnclippedState_2_classLit;
}

function Image$UnclippedState(){
}

_ = Image$UnclippedState.prototype = new Image$State;
_.getClass$ = getClass_103;
_.typeId$ = 0;
function getClass_104(){
  return Lcom_google_gwt_user_client_ui_Label_2_classLit;
}

function Label(){
}

_ = Label.prototype = new Widget;
_.getClass$ = getClass_104;
_.typeId$ = 64;
function $InlineLabel(this$static, text){
  this$static.element = $createElement(($clinit_53() , $doc), 'span');
  this$static.element['className'] = 'gwt-InlineLabel';
  this$static.element.innerText = text || '';
  return this$static;
}

function getClass_105(){
  return Lcom_google_gwt_user_client_ui_InlineLabel_2_classLit;
}

function InlineLabel(){
}

_ = InlineLabel.prototype = new Label;
_.getClass$ = getClass_105;
_.typeId$ = 65;
function $ListBox(this$static){
  var html;
  $FocusWidget(this$static, (html = '<SELECT>' , ($clinit_53() , $doc).createElement(html)));
  this$static.element['className'] = 'gwt-ListBox';
  return this$static;
}

function $checkIndex(this$static, index){
  if (index < 0 || index >= ($clinit_53() , this$static.element).options.length) {
    throw $IndexOutOfBoundsException(new IndexOutOfBoundsException);
  }
}

function $getItemText(this$static, index){
  $checkIndex(this$static, index);
  return ($clinit_53() , this$static.element).options[index].text;
}

function $insertItem(this$static, item, index){
  $insertItem_0(this$static, item, item, index);
}

function $insertItem_0(this$static, item, value, index){
  var before, option, select;
  select = this$static.element;
  option = $createElement(($clinit_53() , $doc), 'option');
  option.text = item;
  option.value = value;
  if (index == -1 || index == select.options.length) {
    select.add(option);
  }
   else {
    before = select.options[index];
    before?select.add(option, before.index):select.add(option);
  }
}

function $setItemSelected(this$static, index, selected){
  $checkIndex(this$static, index);
  ($clinit_53() , this$static.element).options[index].selected = selected;
}

function getClass_106(){
  return Lcom_google_gwt_user_client_ui_ListBox_2_classLit;
}

function ListBox(){
}

_ = ListBox.prototype = new FocusWidget;
_.getClass$ = getClass_106;
_.typeId$ = 66;
function $clinit_206(){
  $clinit_206 = nullMethod;
  maybeDetachCommand = new RootPanel$1;
  rootPanels = $HashMap(new HashMap);
  widgetsToDetach = $HashSet(new HashSet);
}

function $RootPanel(this$static, elem){
  $clinit_206();
  this$static.children = $WidgetCollection(new WidgetCollection, this$static);
  this$static.element = elem;
  $onAttach(this$static);
  return this$static;
}

function detachNow(widget){
  $clinit_206();
  try {
    widget.onDetach();
  }
   finally {
    $remove_3(widgetsToDetach.map, widget) != null;
  }
}

function detachWidgets(){
  $clinit_206();
  try {
    tryCommand(widgetsToDetach, maybeDetachCommand);
  }
   finally {
    $clearImpl(widgetsToDetach.map);
    $clearImpl(rootPanels);
  }
}

function get_0(id){
  $clinit_206();
  var elem, rp;
  rp = dynamicCast($get_1(rootPanels, id), 51);
  elem = null;
  if (id != null) {
    if (!(elem = $doc.getElementById(id))) {
      return null;
    }
  }
  if (rp) {
    if (!elem || rp.element == elem) {
      return rp;
    }
  }
  rootPanels.size == 0 && addCloseHandler(new RootPanel$2);
  !elem?(rp = $RootPanel$DefaultRootPanel(new RootPanel$DefaultRootPanel)):(rp = $RootPanel(new RootPanel, elem));
  $put(rootPanels, id, rp);
  $add_5(widgetsToDetach, rp);
  return rp;
}

function getClass_107(){
  return Lcom_google_gwt_user_client_ui_RootPanel_2_classLit;
}

function RootPanel(){
}

_ = RootPanel.prototype = new AbsolutePanel;
_.getClass$ = getClass_107;
_.typeId$ = 67;
var maybeDetachCommand, rootPanels, widgetsToDetach;
function execute_4(w){
  w.isAttached() && w.onDetach();
}

function getClass_108(){
  return Lcom_google_gwt_user_client_ui_RootPanel$1_2_classLit;
}

function RootPanel$1(){
}

_ = RootPanel$1.prototype = new Object_0;
_.execute_0 = execute_4;
_.getClass$ = getClass_108;
_.typeId$ = 0;
function getClass_109(){
  return Lcom_google_gwt_user_client_ui_RootPanel$2_2_classLit;
}

function onClose_0(closeEvent){
  detachWidgets();
}

function RootPanel$2(){
}

_ = RootPanel$2.prototype = new Object_0;
_.getClass$ = getClass_109;
_.onClose = onClose_0;
_.typeId$ = 68;
function $clinit_209(){
  $clinit_209 = nullMethod;
  $clinit_206();
}

function $RootPanel$DefaultRootPanel(this$static){
  $clinit_209();
  $RootPanel(this$static, $doc.body);
  return this$static;
}

function getClass_110(){
  return Lcom_google_gwt_user_client_ui_RootPanel$DefaultRootPanel_2_classLit;
}

function RootPanel$DefaultRootPanel(){
}

_ = RootPanel$DefaultRootPanel.prototype = new RootPanel;
_.getClass$ = getClass_110;
_.typeId$ = 69;
function $SimplePanel$1(this$static, this$0){
  this$static.this$0 = this$0;
  this$static.hasElement = !!this$static.this$0.widget;
  return this$static;
}

function $next(this$static){
  if (!this$static.hasElement || !this$static.this$0.widget) {
    throw $NoSuchElementException(new NoSuchElementException);
  }
  this$static.hasElement = false;
  return this$static.returned = this$static.this$0.widget;
}

function getClass_111(){
  return Lcom_google_gwt_user_client_ui_SimplePanel$1_2_classLit;
}

function hasNext(){
  return this.hasElement;
}

function next_0(){
  return $next(this);
}

function remove_3(){
  !!this.returned && $remove(this.this$0, this.returned);
}

function SimplePanel$1(){
}

_ = SimplePanel$1.prototype = new Object_0;
_.getClass$ = getClass_111;
_.hasNext = hasNext;
_.next = next_0;
_.remove_0 = remove_3;
_.typeId$ = 0;
_.returned = null;
_.this$0 = null;
function $WidgetCollection(this$static, parent_0){
  this$static.parent_0 = parent_0;
  this$static.array = initDim(_3Lcom_google_gwt_user_client_ui_Widget_2_classLit, 146, 34, 4, 0);
  return this$static;
}

function $add_2(this$static, w){
  $insert(this$static, w, this$static.size);
}

function $indexOf(this$static, w){
  var i;
  for (i = 0; i < this$static.size; ++i) {
    if (this$static.array[i] == w) {
      return i;
    }
  }
  return -1;
}

function $insert(this$static, w, beforeIndex){
  var i, newArray;
  if (beforeIndex < 0 || beforeIndex > this$static.size) {
    throw $IndexOutOfBoundsException(new IndexOutOfBoundsException);
  }
  if (this$static.size == this$static.array.length) {
    newArray = initDim(_3Lcom_google_gwt_user_client_ui_Widget_2_classLit, 146, 34, this$static.array.length * 2, 0);
    for (i = 0; i < this$static.array.length; ++i) {
      setCheck(newArray, i, this$static.array[i]);
    }
    this$static.array = newArray;
  }
  ++this$static.size;
  for (i = this$static.size - 1; i > beforeIndex; --i) {
    setCheck(this$static.array, i, this$static.array[i - 1]);
  }
  setCheck(this$static.array, beforeIndex, w);
}

function $remove_1(this$static, index){
  var i;
  if (index < 0 || index >= this$static.size) {
    throw $IndexOutOfBoundsException(new IndexOutOfBoundsException);
  }
  --this$static.size;
  for (i = index; i < this$static.size; ++i) {
    setCheck(this$static.array, i, this$static.array[i + 1]);
  }
  setCheck(this$static.array, this$static.size, null);
}

function $remove_2(this$static, w){
  var index;
  index = $indexOf(this$static, w);
  if (index == -1) {
    throw $NoSuchElementException(new NoSuchElementException);
  }
  $remove_1(this$static, index);
}

function getClass_112(){
  return Lcom_google_gwt_user_client_ui_WidgetCollection_2_classLit;
}

function iterator_1(){
  return $WidgetCollection$WidgetIterator(new WidgetCollection$WidgetIterator, this);
}

function WidgetCollection(){
}

_ = WidgetCollection.prototype = new Object_0;
_.getClass$ = getClass_112;
_.iterator = iterator_1;
_.typeId$ = 0;
_.array = null;
_.parent_0 = null;
_.size = 0;
function $WidgetCollection$WidgetIterator(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $next_0(this$static){
  if (this$static.index_0 >= this$static.this$0.size) {
    throw $NoSuchElementException(new NoSuchElementException);
  }
  return this$static.this$0.array[++this$static.index_0];
}

function getClass_113(){
  return Lcom_google_gwt_user_client_ui_WidgetCollection$WidgetIterator_2_classLit;
}

function hasNext_0(){
  return this.index_0 < this.this$0.size - 1;
}

function next_1(){
  return $next_0(this);
}

function remove_4(){
  if (this.index_0 < 0 || this.index_0 >= this.this$0.size) {
    throw $IllegalStateException(new IllegalStateException);
  }
  this.this$0.parent_0.remove(this.this$0.array[this.index_0--]);
}

function WidgetCollection$WidgetIterator(){
}

_ = WidgetCollection$WidgetIterator.prototype = new Object_0;
_.getClass$ = getClass_113;
_.hasNext = hasNext_0;
_.next = next_1;
_.remove_0 = remove_4;
_.typeId$ = 0;
_.index_0 = -1;
_.this$0 = null;
function $createFocusable(){
  var e;
  e = $createElement(($clinit_53() , $doc), 'div');
  e.tabIndex = 0;
  return e;
}

function $clearOnReadyStateChange(this$static){
  var self_0 = this$static;
  $wnd.setTimeout(function(){
    self_0.onreadystatechange = new Function;
  }
  , 0);
}

function $setOnReadyStateChange(this$static, handler){
  var _this = this$static;
  this$static.onreadystatechange = $entry(function(){
    handler.onReadyStateChange(_this);
  }
  );
}

function create_0(){
  if ($wnd.XMLHttpRequest) {
    return new XMLHttpRequest;
  }
   else {
    try {
      return new ActiveXObject('MSXML2.XMLHTTP.3.0');
    }
     catch (e) {
      return new ActiveXObject('Microsoft.XMLHTTP');
    }
  }
}

function $DOMException(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_114(){
  return Lcom_google_gwt_xml_client_DOMException_2_classLit;
}

function DOMException(){
}

_ = DOMException.prototype = new RuntimeException;
_.getClass$ = getClass_114;
_.typeId$ = 70;
function $clinit_235(){
  $clinit_235 = nullMethod;
  impl = ($clinit_249() , $clinit_249() , impl_0);
}

var impl;
function equals_3(o){
  if (o != null && canCast(o.typeId$, 53)) {
    return this.jsObject == dynamicCast(o, 53).jsObject;
  }
  return false;
}

function getClass_115(){
  return Lcom_google_gwt_xml_client_impl_DOMItem_2_classLit;
}

function getJsObject(){
  return this.jsObject;
}

function hashCode_5(){
  return getHashCode(this.jsObject);
}

function DOMItem(){
}

_ = DOMItem.prototype = new Object_0;
_.equals$ = equals_3;
_.getClass$ = getClass_115;
_.getJsObject = getJsObject;
_.hashCode$ = hashCode_5;
_.typeId$ = 71;
_.jsObject = null;
function $NodeImpl(this$static, jso){
  this$static.jsObject = jso;
  return this$static;
}

function build(node){
  var nodeType, out;
  if (!node) {
    return null;
  }
  nodeType = ($clinit_249() , out = node.nodeType , out == null?-1:out);
  switch (nodeType) {
    case 2:
      return $AttrImpl(new AttrImpl, node);
    case 4:
      return $CDATASectionImpl(new CDATASectionImpl, node);
    case 8:
      return $CommentImpl(new CommentImpl, node);
    case 11:
      return $DocumentFragmentImpl(new DocumentFragmentImpl, node);
    case 9:
      return $DocumentImpl(new DocumentImpl, node);
    case 1:
      return $ElementImpl(new ElementImpl, node);
    case 7:
      return $ProcessingInstructionImpl(new ProcessingInstructionImpl, node);
    case 3:
      return $TextImpl(new TextImpl, node);
    default:return $NodeImpl(new NodeImpl, node);
  }
}

function getClass_116(){
  return Lcom_google_gwt_xml_client_impl_NodeImpl_2_classLit;
}

function toString_13(){
  var jsNode;
  return $clinit_249() , jsNode = this.getJsObject() , jsNode.xml;
}

function NodeImpl(){
}

_ = NodeImpl.prototype = new DOMItem;
_.getClass$ = getClass_116;
_.toString$ = toString_13;
_.typeId$ = 72;
function $AttrImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_117(){
  return Lcom_google_gwt_xml_client_impl_AttrImpl_2_classLit;
}

function AttrImpl(){
}

_ = AttrImpl.prototype = new NodeImpl;
_.getClass$ = getClass_117;
_.typeId$ = 73;
function getClass_118(){
  return Lcom_google_gwt_xml_client_impl_CharacterDataImpl_2_classLit;
}

function getData(){
  return $clinit_249() , this.jsObject.data;
}

function CharacterDataImpl(){
}

_ = CharacterDataImpl.prototype = new NodeImpl;
_.getClass$ = getClass_118;
_.getData = getData;
_.typeId$ = 74;
function $TextImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_119(){
  return Lcom_google_gwt_xml_client_impl_TextImpl_2_classLit;
}

function toString_14(){
  var b, i, x;
  b = $StringBuffer(new StringBuffer);
  x = $split(($clinit_249() , this.jsObject.data), '(?=[;&<>\'"])', -1);
  for (i = 0; i < x.length; ++i) {
    if (x[i].indexOf(';') == 0) {
      $append_1(b.data_0, '&semi;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else if (x[i].indexOf('&') == 0) {
      $append_1(b.data_0, '&amp;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else if (x[i].indexOf('"') == 0) {
      $append_1(b.data_0, '&quot;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else if (x[i].indexOf("'") == 0) {
      $append_1(b.data_0, '&apos;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else if (x[i].indexOf('<') == 0) {
      $append_1(b.data_0, '&lt;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else if (x[i].indexOf('>') == 0) {
      $append_1(b.data_0, '&gt;');
      $append_2(b, x[i].substr(1, x[i].length - 1));
    }
     else {
      $append_1(b.data_0, x[i]);
    }
  }
  return $toString_1(b.data_0);
}

function TextImpl(){
}

_ = TextImpl.prototype = new CharacterDataImpl;
_.getClass$ = getClass_119;
_.toString$ = toString_14;
_.typeId$ = 75;
function $CDATASectionImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_120(){
  return Lcom_google_gwt_xml_client_impl_CDATASectionImpl_2_classLit;
}

function toString_15(){
  var b;
  b = $StringBuffer_0(new StringBuffer, '<![CDATA[');
  $append_2(b, ($clinit_249() , this.jsObject.data));
  $append_1(b.data_0, ']]>');
  return $toString_1(b.data_0);
}

function CDATASectionImpl(){
}

_ = CDATASectionImpl.prototype = new TextImpl;
_.getClass$ = getClass_120;
_.toString$ = toString_15;
_.typeId$ = 76;
function $CommentImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_121(){
  return Lcom_google_gwt_xml_client_impl_CommentImpl_2_classLit;
}

function toString_16(){
  var b;
  b = $StringBuffer_0(new StringBuffer, '<!--');
  $append_2(b, ($clinit_249() , this.jsObject.data));
  $append_1(b.data_0, '-->');
  return $toString_1(b.data_0);
}

function CommentImpl(){
}

_ = CommentImpl.prototype = new CharacterDataImpl;
_.getClass$ = getClass_121;
_.toString$ = toString_16;
_.typeId$ = 77;
function $DOMParseException(this$static, contents, e){
  $DOMException(this$static, 'Failed to parse: ' + contents.substr(0, min_0(contents.length, 128) - 0));
  $initCause(this$static, e);
  return this$static;
}

function getClass_122(){
  return Lcom_google_gwt_xml_client_impl_DOMParseException_2_classLit;
}

function DOMParseException(){
}

_ = DOMParseException.prototype = new DOMException;
_.getClass$ = getClass_122;
_.typeId$ = 78;
function $DocumentFragmentImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_123(){
  return Lcom_google_gwt_xml_client_impl_DocumentFragmentImpl_2_classLit;
}

function DocumentFragmentImpl(){
}

_ = DocumentFragmentImpl.prototype = new NodeImpl;
_.getClass$ = getClass_123;
_.typeId$ = 79;
function $DocumentImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_124(){
  return Lcom_google_gwt_xml_client_impl_DocumentImpl_2_classLit;
}

function DocumentImpl(){
}

_ = DocumentImpl.prototype = new NodeImpl;
_.getClass$ = getClass_124;
_.typeId$ = 80;
function $ElementImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_125(){
  return Lcom_google_gwt_xml_client_impl_ElementImpl_2_classLit;
}

function ElementImpl(){
}

_ = ElementImpl.prototype = new NodeImpl;
_.getClass$ = getClass_125;
_.typeId$ = 81;
function $NodeListImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function $item(this$static, index){
  return build(item_0(this$static.jsObject, index));
}

function getClass_126(){
  return Lcom_google_gwt_xml_client_impl_NodeListImpl_2_classLit;
}

function toString_17(){
  var b, i;
  b = $StringBuffer(new StringBuffer);
  for (i = 0; i < ($clinit_249() , this.jsObject.length); ++i) {
    $append_2(b, build(item_0(this.jsObject, i)).toString$());
  }
  return $toString_1(b.data_0);
}

function NodeListImpl(){
}

_ = NodeListImpl.prototype = new DOMItem;
_.getClass$ = getClass_126;
_.toString$ = toString_17;
_.typeId$ = 82;
function $ProcessingInstructionImpl(this$static, o){
  this$static.jsObject = o;
  return this$static;
}

function getClass_127(){
  return Lcom_google_gwt_xml_client_impl_ProcessingInstructionImpl_2_classLit;
}

function toString_18(){
  var jsNode;
  return $clinit_249() , jsNode = this.getJsObject() , jsNode.xml;
}

function ProcessingInstructionImpl(){
}

_ = ProcessingInstructionImpl.prototype = new NodeImpl;
_.getClass$ = getClass_127;
_.toString$ = toString_18;
_.typeId$ = 83;
function $clinit_249(){
  $clinit_249 = nullMethod;
  impl_0 = ($clinit_250() , $clinit_249() , new XMLParserImplIE6);
}

function $parse(this$static, contents){
  var $e0, e;
  try {
    return dynamicCast(build($parseImpl(this$static, contents)), 54);
  }
   catch ($e0) {
    $e0 = caught_0($e0);
    if (instanceOf($e0, 48)) {
      e = $e0;
      throw $DOMParseException(new DOMParseException, contents, e);
    }
     else 
      throw $e0;
  }
}

function getClass_128(){
  return Lcom_google_gwt_xml_client_impl_XMLParserImpl_2_classLit;
}

function item_0(t, index){
  $clinit_249();
  if (index >= t.length) {
    return null;
  }
  return t.item(index);
}

function XMLParserImpl(){
}

_ = XMLParserImpl.prototype = new Object_0;
_.getClass$ = getClass_128;
_.typeId$ = 0;
var impl_0;
function $clinit_250(){
  $clinit_250 = nullMethod;
  $clinit_249();
}

function $parseImpl(this$static, contents){
  var doc = this$static.createDocumentImpl();
  if (!doc.loadXML(contents)) {
    var err = doc.parseError;
    throw new Error('line ' + err.line + ', char ' + err.linepos + ':' + err.reason);
  }
   else {
    return doc;
  }
}

function createDocumentImpl(){
  var doc = selectDOMDocumentVersion();
  doc.preserveWhiteSpace = true;
  doc.setProperty('SelectionNamespaces', "xmlns:xsl='http://www.w3.org/1999/XSL/Transform'");
  doc.setProperty('SelectionLanguage', 'XPath');
  return doc;
}

function getClass_129(){
  return Lcom_google_gwt_xml_client_impl_XMLParserImplIE6_2_classLit;
}

function selectDOMDocumentVersion(){
  try {
    return new ActiveXObject('Msxml2.DOMDocument');
  }
   catch (e) {
  }
  try {
    return new ActiveXObject('MSXML.DOMDocument');
  }
   catch (e) {
  }
  try {
    return new ActiveXObject('MSXML3.DOMDocument');
  }
   catch (e) {
  }
  try {
    return new ActiveXObject('Microsoft.XmlDom');
  }
   catch (e) {
  }
  try {
    return new ActiveXObject('Microsoft.DOMDocument');
  }
   catch (e) {
  }
  throw new Error('XMLParserImplIE6.createDocumentImpl: Could not find appropriate version of DOMDocument.');
}

function XMLParserImplIE6(){
}

_ = XMLParserImplIE6.prototype = new XMLParserImpl;
_.createDocumentImpl = createDocumentImpl;
_.getClass$ = getClass_129;
_.typeId$ = 0;
function $Color(this$static, colorCode, red, green, blue, alpha){
  this$static.colorCode = colorCode;
  this$static.red = red;
  this$static.green = green;
  this$static.blue = blue;
  this$static.alpha = alpha;
  return this$static;
}

function $Color_0(this$static, red, green, blue, alpha){
  $Color(this$static, $toString_1($append_3($append_4($append_3($append_5($append_3($append_5($append_3($append_5($append_6($StringBuilder_0(new StringBuilder), 'rgba('), red), 44), green), 44), blue), 44), alpha), 41).data_0), red, green, blue, alpha);
  return this$static;
}

function $Color_1(this$static, red, green, blue){
  var hexString, stringBuilder;
  stringBuilder = $StringBuilder_1(new StringBuilder, '#000000');
  hexString = toPowerOfTwoString(red << 16 & 16711680 | green << 8 & 65280 | blue & 255, 4);
  this$static.colorCode = $toString_1($replace_0(stringBuilder, $toString_1(stringBuilder.data_0).length - hexString.length, $toString_1(stringBuilder.data_0).length, hexString).data_0);
  this$static.red = red;
  this$static.green = green;
  this$static.blue = blue;
  this$static.alpha = 1;
  return this$static;
}

function $equals_1(this$static, rhs){
  return this$static.red == rhs.red && this$static.green == rhs.green && this$static.blue == rhs.blue && this$static.alpha == rhs.alpha;
}

function equals_4(obj){
  return obj != null && canCast(obj.typeId$, 55) && $equals_1(this, dynamicCast(obj, 55));
}

function getClass_130(){
  return Lgwt_g2d_client_graphics_Color_2_classLit;
}

function hashCode_6(){
  return hashCode_18(initValues(_3D_classLit, 147, -1, [this.red << 16 & 16711680 | this.green << 8 & 65280 | this.blue & 255, this.alpha]));
}

function toString_19(){
  return this.colorCode;
}

function Color(){
}

_ = Color.prototype = new Object_0;
_.equals$ = equals_4;
_.getClass$ = getClass_130;
_.hashCode$ = hashCode_6;
_.toString$ = toString_19;
_.typeId$ = 84;
_.alpha = 0;
_.blue = 0;
_.colorCode = null;
_.green = 0;
_.red = 0;
function $clinit_252(){
  $clinit_252 = nullMethod;
  SOURCE_ATOP = $Composition(new Composition, 'SOURCE_ATOP', 0, 'source-atop');
  SOURCE_IN = $Composition(new Composition, 'SOURCE_IN', 1, 'source-in');
  SOURCE_OUT = $Composition(new Composition, 'SOURCE_OUT', 2, 'source-out');
  SOURCE_OVER = $Composition(new Composition, 'SOURCE_OVER', 3, 'source-over');
  DESTINATION_ATOP = $Composition(new Composition, 'DESTINATION_ATOP', 4, 'destination-atop');
  DESTINATION_IN = $Composition(new Composition, 'DESTINATION_IN', 5, 'destination-in');
  DESTINATION_OUT = $Composition(new Composition, 'DESTINATION_OUT', 6, 'destination-out');
  DESTINATION_OVER = $Composition(new Composition, 'DESTINATION_OVER', 7, 'destination-over');
  LIGHTER = $Composition(new Composition, 'LIGHTER', 8, 'lighter');
  COPY = $Composition(new Composition, 'COPY', 9, 'copy');
  XOR = $Composition(new Composition, 'XOR', 10, 'xor');
}

function $Composition(this$static, enum$name, enum$ordinal, compositionName){
  $clinit_252();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  this$static.compositionName = compositionName;
  return this$static;
}

function getClass_131(){
  return Lgwt_g2d_client_graphics_Composition_2_classLit;
}

function toString_20(){
  return this.compositionName;
}

function values_2(){
  $clinit_252();
  return initValues(_3Lgwt_g2d_client_graphics_Composition_2_classLit, 148, 35, [SOURCE_ATOP, SOURCE_IN, SOURCE_OUT, SOURCE_OVER, DESTINATION_ATOP, DESTINATION_IN, DESTINATION_OUT, DESTINATION_OVER, LIGHTER, COPY, XOR]);
}

function Composition(){
}

_ = Composition.prototype = new Enum;
_.getClass$ = getClass_131;
_.toString$ = toString_20;
_.typeId$ = 85;
_.compositionName = null;
var COPY, DESTINATION_ATOP, DESTINATION_IN, DESTINATION_OUT, DESTINATION_OVER, LIGHTER, SOURCE_ATOP, SOURCE_IN, SOURCE_OUT, SOURCE_OVER, XOR;
function $DirectShapeRenderer(this$static, surface){
  this$static.context = surface.context;
  return this$static;
}

function $drawLineTo(this$static, x, y){
  this$static.context.lineTo(x, y);
  return this$static;
}

function $drawLineTo_0(this$static, position){
  return $drawLineTo(this$static, position.x, position.y);
}

function $moveTo(this$static, x, y){
  this$static.context.moveTo(x, y);
  return this$static;
}

function $moveTo_0(this$static, position){
  return $moveTo(this$static, position.x, position.y);
}

function getClass_132(){
  return Lgwt_g2d_client_graphics_DirectShapeRenderer_2_classLit;
}

function DirectShapeRenderer(){
}

_ = DirectShapeRenderer.prototype = new Object_0;
_.getClass$ = getClass_132;
_.typeId$ = 0;
_.context = null;
function $Surface(this$static, width, height){
  this$static.canvas = $createElement(($clinit_53() , $doc), 'canvas');
  $setElement_0(this$static, $createElement($doc, 'div'));
  this$static.element.appendChild(this$static.canvas);
  $init_0(this$static.canvas, width, height);
  setStylePrimaryName(this$static.element, 'g2d-Surface');
  this$static.context = this$static.canvas.getContext('2d');
  return this$static;
}

function $drawImage(this$static, image, x, y, width, height){
  this$static.context.drawImage(image, x, y, width, height);
  return this$static;
}

function $drawImage_0(this$static, image, x, y){
  this$static.context.drawImage(image, x, y);
  return this$static;
}

function $scale(this$static, scale){
  return this$static.context.scale(scale, scale) , this$static;
}

function $setFillStyle(this$static, color){
  this$static.context.fillStyle = color.colorCode;
  return this$static;
}

function $setGlobalCompositeOperation(this$static, compositeOperation){
  this$static.context.globalCompositeOperation = compositeOperation.compositionName;
  return this$static;
}

--></script>
<script><!--
function $setLineWidth(this$static, lineWidth){
  this$static.context.lineWidth = lineWidth;
  return this$static;
}

function $setStrokeStyle(this$static, color){
  this$static.context.strokeStyle = color.colorCode;
  return this$static;
}

function $setTransform(this$static, m11, m12, m21, m22, dx, dy){
  this$static.context.setTransform(m11, m12, m21, m22, dx, dy);
  return this$static;
}

function $setTransform_0(this$static, matrix){
  return $setTransform(this$static, matrix.m11, matrix.m12, matrix.m21, matrix.m22, matrix.dx, matrix.dy);
}

function $strokeRectangle(this$static, x, y, width, height){
  this$static.context.strokeRect(x, y, width, height);
  return this$static;
}

function $strokeRectangle_0(this$static, rectangle){
  return $strokeRectangle(this$static, rectangle.x, rectangle.y, rectangle.width, rectangle.height);
}

function $translate_0(this$static, x, y){
  this$static.context.translate(x, y);
  return this$static;
}

function getClass_133(){
  return Lgwt_g2d_client_graphics_Surface_2_classLit;
}

function Surface(){
}

_ = Surface.prototype = new FocusWidget;
_.getClass$ = getClass_133;
_.typeId$ = 86;
_.canvas = null;
_.context = null;
function $init_0(element, width, height){
  $wnd.G_vmlCanvasManager.initElement(element);
  element.style['width'] = width + ($clinit_74() , 'px');
  element.style['height'] = height + 'px';
}

function $Matrix(this$static){
  this$static.m11 = 1;
  this$static.m22 = 1;
  return this$static;
}

function $Matrix_0(this$static, rhs){
  $set_0(this$static, rhs.m11, rhs.m12, rhs.m21, rhs.m22, rhs.dx, rhs.dy);
  return this$static;
}

function $equals_2(this$static, rhs){
  return this$static.m11 == rhs.m11 && this$static.m12 == rhs.m12 && this$static.dx == rhs.dx && this$static.m21 == rhs.m21 && this$static.m22 == rhs.m22 && this$static.dy == rhs.dy;
}

function $mutableTranslate(this$static, x, y){
  $set_0(this$static, this$static.m11, this$static.m12, this$static.m21, this$static.m22, this$static.m11 * x + this$static.m12 * y + this$static.dx, this$static.m21 * x + this$static.m22 * y + this$static.dy);
  return this$static;
}

function $set_0(this$static, m11, m12, m21, m22, dx, dy){
  this$static.m11 = m11;
  this$static.m12 = m12;
  this$static.m21 = m21;
  this$static.m22 = m22;
  this$static.dx = dx;
  this$static.dy = dy;
}

function $translate_2(this$static, x, y){
  return $mutableTranslate($Matrix_0(new Matrix, this$static), x, y);
}

function equals_5(obj){
  return obj != null && canCast(obj.typeId$, 56) && $equals_2(this, dynamicCast(obj, 56));
}

function getClass_134(){
  return Lgwt_g2d_client_math_Matrix_2_classLit;
}

function hashCode_7(){
  return hashCode_18(initValues(_3D_classLit, 147, -1, [this.m11, this.m12, this.dx, this.m21, this.m22, this.dy]));
}

function Matrix(){
}

_ = Matrix.prototype = new Object_0;
_.equals$ = equals_5;
_.getClass$ = getClass_134;
_.hashCode$ = hashCode_7;
_.typeId$ = 87;
_.dx = 0;
_.dy = 0;
_.m11 = 0;
_.m12 = 0;
_.m21 = 0;
_.m22 = 0;
function $clinit_261(){
  $clinit_261 = nullMethod;
  $Rectangle$ImmutableRectangle(new Rectangle$ImmutableRectangle, 0, 0, 0, 0);
}

function $Rectangle(this$static, x, y, width, height){
  $clinit_261();
  this$static.x = x;
  this$static.y = y;
  this$static.width = width;
  this$static.height = height;
  return this$static;
}

function $equals_3(this$static, rhs){
  return this$static.x == rhs.x && this$static.y == rhs.y && this$static.width == rhs.width && this$static.height == rhs.height;
}

function equals_6(obj){
  return obj != null && canCast(obj.typeId$, 57) && $equals_3(this, dynamicCast(obj, 57));
}

function getClass_135(){
  return Lgwt_g2d_client_math_Rectangle_2_classLit;
}

function hashCode_8(){
  return hashCode_18(initValues(_3D_classLit, 147, -1, [this.x, this.y, this.width, this.height]));
}

function toString_21(){
  return '[' + this.x + ', ' + this.y + ', ' + this.width + ', ' + this.height + ']';
}

function Rectangle(){
}

_ = Rectangle.prototype = new Object_0;
_.equals$ = equals_6;
_.getClass$ = getClass_135;
_.hashCode$ = hashCode_8;
_.toString$ = toString_21;
_.typeId$ = 88;
_.height = 0;
_.width = 0;
_.x = 0;
_.y = 0;
function $clinit_262(){
  $clinit_262 = nullMethod;
  $clinit_261();
}

function $Rectangle$ImmutableRectangle(this$static, x, y, width, height){
  $clinit_262();
  this$static.x = x;
  this$static.y = y;
  this$static.width = width;
  this$static.height = height;
  return this$static;
}

function getClass_136(){
  return Lgwt_g2d_client_math_Rectangle$ImmutableRectangle_2_classLit;
}

function Rectangle$ImmutableRectangle(){
}

_ = Rectangle$ImmutableRectangle.prototype = new Rectangle;
_.getClass$ = getClass_136;
_.typeId$ = 89;
function $clinit_263(){
  $clinit_263 = nullMethod;
  $Vector2$ImmutableVector2(new Vector2$ImmutableVector2, 0, 0);
  $Vector2$ImmutableVector2(new Vector2$ImmutableVector2, 1, 1);
  $Vector2$ImmutableVector2(new Vector2$ImmutableVector2, 1, 0);
  $Vector2$ImmutableVector2(new Vector2$ImmutableVector2, 0, 1);
}

function $equals_4(this$static, rhs){
  return this$static.x == rhs.x && this$static.y == rhs.y;
}

function equals_7(obj){
  return obj != null && canCast(obj.typeId$, 10) && $equals_4(this, dynamicCast(obj, 10));
}

function getClass_137(){
  return Lgwt_g2d_client_math_Vector2_2_classLit;
}

function hashCode_9(){
  return hashCode_18(initValues(_3D_classLit, 147, -1, [this.x, this.y]));
}

function setX(x){
  this.x = x;
}

function setY(y){
  this.y = y;
}

function Vector2(){
}

_ = Vector2.prototype = new Object_0;
_.equals$ = equals_7;
_.getClass$ = getClass_137;
_.hashCode$ = hashCode_9;
_.setX = setX;
_.setY = setY;
_.typeId$ = 90;
_.x = 0;
_.y = 0;
function $clinit_264(){
  $clinit_264 = nullMethod;
  $clinit_263();
}

function $Vector2$ImmutableVector2(this$static, x, y){
  $clinit_264();
  this$static.x = x;
  this$static.y = y;
  return this$static;
}

function getClass_138(){
  return Lgwt_g2d_client_math_Vector2$ImmutableVector2_2_classLit;
}

function setX_0(x){
  throw $UnsupportedOperationException_0(new UnsupportedOperationException, 'Cannot modify an immutable vector');
}

function setY_0(y){
  throw $UnsupportedOperationException_0(new UnsupportedOperationException, 'Cannot modify an immutable vector');
}

function Vector2$ImmutableVector2(){
}

_ = Vector2$ImmutableVector2.prototype = new Vector2;
_.getClass$ = getClass_138;
_.setX = setX_0;
_.setY = setY_0;
_.typeId$ = 91;
function $ArrayStoreException(this$static){
  $fillInStackTrace();
  return this$static;
}

function getClass_139(){
  return Ljava_lang_ArrayStoreException_2_classLit;
}

function ArrayStoreException(){
}

_ = ArrayStoreException.prototype = new RuntimeException;
_.getClass$ = getClass_139;
_.typeId$ = 93;
function $clinit_268(){
  $clinit_268 = nullMethod;
  FALSE = $Boolean(new Boolean_0, false);
  TRUE = $Boolean(new Boolean_0, true);
}

function $Boolean(this$static, value){
  $clinit_268();
  this$static.value_0 = value;
  return this$static;
}

function compareTo_0(p0){
  return this.value_0 == dynamicCast(p0, 2).value_0?0:this.value_0?1:-1;
}

function equals_8(o){
  return o != null && canCast(o.typeId$, 2) && dynamicCast(o, 2).value_0 == this.value_0;
}

function getClass_140(){
  return Ljava_lang_Boolean_2_classLit;
}

function hashCode_10(){
  return this.value_0?1231:1237;
}

function toString_22(){
  return this.value_0?'true':'false';
}

function Boolean_0(){
}

_ = Boolean_0.prototype = new Object_0;
_.compareTo$ = compareTo_0;
_.equals$ = equals_8;
_.getClass$ = getClass_140;
_.hashCode$ = hashCode_10;
_.toString$ = toString_22;
_.typeId$ = 96;
_.value_0 = false;
var FALSE, TRUE;
function digit(c, radix){
  if (radix < 2 || radix > 36) {
    return -1;
  }
  if (c >= 48 && c < 48 + (radix < 10?radix:10)) {
    return c - 48;
  }
  if (c >= 97 && c < radix + 97 - 10) {
    return c - 97 + 10;
  }
  if (c >= 65 && c < radix + 65 - 10) {
    return c - 65 + 10;
  }
  return -1;
}

function createForArray(packageName, className){
  var clazz;
  clazz = new Class;
  clazz.typeName = packageName + className;
  clazz.modifiers = 4;
  return clazz;
}

function createForClass(packageName, className){
  var clazz;
  clazz = new Class;
  clazz.typeName = packageName + className;
  return clazz;
}

function createForEnum(packageName, className, enumConstantsFunc){
  var clazz;
  clazz = new Class;
  clazz.typeName = packageName + className;
  clazz.modifiers = enumConstantsFunc?8:0;
  return clazz;
}

function getClass_141(){
  return Ljava_lang_Class_2_classLit;
}

function toString_23(){
  return ((this.modifiers & 2) != 0?'interface ':(this.modifiers & 1) != 0?'':'class ') + this.typeName;
}

function Class(){
}

_ = Class.prototype = new Object_0;
_.getClass$ = getClass_141;
_.toString$ = toString_23;
_.typeId$ = 0;
_.modifiers = 0;
_.typeName = null;
function $ClassCastException(this$static){
  $fillInStackTrace();
  return this$static;
}

function getClass_142(){
  return Ljava_lang_ClassCastException_2_classLit;
}

function ClassCastException(){
}

_ = ClassCastException.prototype = new RuntimeException;
_.getClass$ = getClass_142;
_.typeId$ = 97;
function __parseAndValidateDouble(s){
  var toReturn;
  toReturn = __parseDouble(s);
  if (isNaN(toReturn)) {
    throw $NumberFormatException(new NumberFormatException, 'For input string: "' + s + '"');
  }
  return toReturn;
}

function __parseAndValidateInt(s, radix, lowerBound, upperBound){
  var i, length_0, startIndex, toReturn;
  if (s == null) {
    throw $NumberFormatException(new NumberFormatException, 'null');
  }
  if (radix < 2 || radix > 36) {
    throw $NumberFormatException(new NumberFormatException, 'radix ' + radix + ' out of range');
  }
  length_0 = s.length;
  startIndex = length_0 > 0 && s.charCodeAt(0) == 45?1:0;
  for (i = startIndex; i < length_0; ++i) {
    if (digit(s.charCodeAt(i), radix) == -1) {
      throw $NumberFormatException(new NumberFormatException, 'For input string: "' + s + '"');
    }
  }
  toReturn = parseInt(s, radix);
  if (isNaN(toReturn)) {
    throw $NumberFormatException(new NumberFormatException, 'For input string: "' + s + '"');
  }
   else if (toReturn < lowerBound || toReturn > upperBound) {
    throw $NumberFormatException(new NumberFormatException, 'For input string: "' + s + '"');
  }
  return toReturn;
}

function __parseDouble(str){
  var floatRegex = floatRegex_0;
  !floatRegex && (floatRegex = floatRegex_0 = /^\s*[+-]?\d*\.?\d*([eE][+-]?\d+)?\s*$/i);
  if (floatRegex.test(str)) {
    return parseFloat(str);
  }
   else {
    return Number.NaN;
  }
}

function getClass_143(){
  return Ljava_lang_Number_2_classLit;
}

function Number_0(){
}

_ = Number_0.prototype = new Object_0;
_.getClass$ = getClass_143;
_.typeId$ = 98;
var floatRegex_0 = null;
function $Double(this$static, value){
  this$static.value_0 = value;
  return this$static;
}

function $compareTo_1(this$static, b){
  if (this$static.value_0 < b.value_0) {
    return -1;
  }
   else if (this$static.value_0 > b.value_0) {
    return 1;
  }
   else {
    return 0;
  }
}

function compareTo_1(p0){
  return $compareTo_1(this, dynamicCast(p0, 3));
}

function equals_9(o){
  return o != null && canCast(o.typeId$, 3) && dynamicCast(o, 3).value_0 == this.value_0;
}

function getClass_144(){
  return Ljava_lang_Double_2_classLit;
}

function hashCode_11(){
  return ~~Math.max(Math.min(this.value_0, 2147483647), -2147483648);
}

function toString_24(){
  return '' + this.value_0;
}

function Double(){
}

_ = Double.prototype = new Number_0;
_.compareTo$ = compareTo_1;
_.equals$ = equals_9;
_.getClass$ = getClass_144;
_.hashCode$ = hashCode_11;
_.toString$ = toString_24;
_.typeId$ = 99;
_.value_0 = 0;
function $IllegalArgumentException(this$static){
  $fillInStackTrace();
  return this$static;
}

function $IllegalArgumentException_0(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_145(){
  return Ljava_lang_IllegalArgumentException_2_classLit;
}

function IllegalArgumentException(){
}

_ = IllegalArgumentException.prototype = new RuntimeException;
_.getClass$ = getClass_145;
_.typeId$ = 100;
function $IllegalStateException(this$static){
  $fillInStackTrace();
  return this$static;
}

function $IllegalStateException_0(this$static, s){
  $fillInStackTrace();
  this$static.detailMessage = s;
  return this$static;
}

function getClass_146(){
  return Ljava_lang_IllegalStateException_2_classLit;
}

function IllegalStateException(){
}

_ = IllegalStateException.prototype = new RuntimeException;
_.getClass$ = getClass_146;
_.typeId$ = 101;
function $IndexOutOfBoundsException(this$static){
  $fillInStackTrace();
  return this$static;
}

function $IndexOutOfBoundsException_0(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_147(){
  return Ljava_lang_IndexOutOfBoundsException_2_classLit;
}

function IndexOutOfBoundsException(){
}

_ = IndexOutOfBoundsException.prototype = new RuntimeException;
_.getClass$ = getClass_147;
_.typeId$ = 102;
function $Integer(this$static, value){
  this$static.value_0 = value;
  return this$static;
}

function $compareTo_2(this$static, b){
  if (this$static.value_0 < b.value_0) {
    return -1;
  }
   else if (this$static.value_0 > b.value_0) {
    return 1;
  }
   else {
    return 0;
  }
}

function compareTo_2(p0){
  return $compareTo_2(this, dynamicCast(p0, 40));
}

function equals_10(o){
  return o != null && canCast(o.typeId$, 40) && dynamicCast(o, 40).value_0 == this.value_0;
}

function getClass_148(){
  return Ljava_lang_Integer_2_classLit;
}

function hashCode_12(){
  return this.value_0;
}

function toPowerOfTwoString(value, shift){
  var bitMask, buf, bufSize, digits, pos;
  bufSize = ~~(32 / shift);
  bitMask = (1 << shift) - 1;
  buf = initDim(_3C_classLit, 139, -1, bufSize, 1);
  digits = ($clinit_285() , digits_0);
  pos = bufSize - 1;
  if (value >= 0) {
    while (value > bitMask) {
      buf[pos--] = digits[value & bitMask];
      value >>= shift;
    }
  }
   else {
    while (pos > 0) {
      buf[pos--] = digits[value & bitMask];
      value >>= shift;
    }
  }
  buf[pos] = digits[value & bitMask];
  return __valueOf(buf, pos, bufSize);
}

function toString_25(){
  return '' + this.value_0;
}

function valueOf(i){
  var rebase, result;
  if (i > -129 && i < 128) {
    rebase = i + 128;
    result = ($clinit_281() , boxedValues_0)[rebase];
    !result && (result = boxedValues_0[rebase] = $Integer(new Integer, i));
    return result;
  }
  return $Integer(new Integer, i);
}

function Integer(){
}

_ = Integer.prototype = new Number_0;
_.compareTo$ = compareTo_2;
_.equals$ = equals_10;
_.getClass$ = getClass_148;
_.hashCode$ = hashCode_12;
_.toString$ = toString_25;
_.typeId$ = 103;
_.value_0 = 0;
function $clinit_281(){
  $clinit_281 = nullMethod;
  boxedValues_0 = initDim(_3Ljava_lang_Integer_2_classLit, 156, 40, 256, 0);
}

var boxedValues_0;
function max_0(x, y){
  return x > y?x:y;
}

function min_0(x, y){
  return x < y?x:y;
}

function $NullPointerException(this$static){
  $fillInStackTrace();
  return this$static;
}

function $NullPointerException_0(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_149(){
  return Ljava_lang_NullPointerException_2_classLit;
}

function NullPointerException(){
}

_ = NullPointerException.prototype = new RuntimeException;
_.getClass$ = getClass_149;
_.typeId$ = 104;
function $clinit_285(){
  $clinit_285 = nullMethod;
  digits_0 = initValues(_3C_classLit, 139, -1, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122]);
}

var digits_0;
function $NumberFormatException(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_150(){
  return Ljava_lang_NumberFormatException_2_classLit;
}

function NumberFormatException(){
}

_ = NumberFormatException.prototype = new IllegalArgumentException;
_.getClass$ = getClass_150;
_.typeId$ = 105;
function $StackTraceElement(this$static, className, methodName, fileName, lineNumber){
  this$static.className_0 = className;
  this$static.methodName = methodName;
  this$static.fileName = fileName;
  this$static.lineNumber = lineNumber;
  return this$static;
}

function getClass_151(){
  return Ljava_lang_StackTraceElement_2_classLit;
}

function toString_26(){
  return this.className_0 + '.' + this.methodName + '(' + this.fileName + ':' + this.lineNumber + ')';
}

function StackTraceElement(){
}

_ = StackTraceElement.prototype = new Object_0;
_.getClass$ = getClass_151;
_.toString$ = toString_26;
_.typeId$ = 106;
_.className_0 = null;
_.fileName = null;
_.lineNumber = 0;
_.methodName = null;
function $equals_5(this$static, other){
  if (!(other != null && canCast(other.typeId$, 1))) {
    return false;
  }
  return String(this$static) == other;
}

function $split(this$static, regex, maxMatch){
  var compiled = new RegExp(regex, 'g');
  var out = [];
  var count = 0;
  var trail = this$static;
  var lastTrail = null;
  while (true) {
    var matchObj = compiled.exec(trail);
    if (matchObj == null || trail == '' || count == maxMatch - 1 && maxMatch > 0) {
      out[count] = trail;
      break;
    }
     else {
      out[count] = trail.substring(0, matchObj.index);
      trail = trail.substring(matchObj.index + matchObj[0].length, trail.length);
      compiled.lastIndex = 0;
      if (lastTrail == trail) {
        out[count] = trail.substring(0, 1);
        trail = trail.substring(1);
      }
      lastTrail = trail;
      count++;
    }
  }
  if (maxMatch == 0 && this$static.length > 0) {
    var lastNonEmpty = out.length;
    while (lastNonEmpty > 0 && out[lastNonEmpty - 1] == '') {
      --lastNonEmpty;
    }
    lastNonEmpty < out.length && out.splice(lastNonEmpty, out.length - lastNonEmpty);
  }
  var jr = initDim(_3Ljava_lang_String_2_classLit, 160, 1, out.length, 0);
  for (var i = 0; i < out.length; ++i) {
    jr[i] = out[i];
  }
  return jr;
}

function $trim(this$static){
  if (this$static.length == 0 || this$static[0] > ' ' && this$static[this$static.length - 1] > ' ') {
    return this$static;
  }
  var r1 = this$static.replace(/^(\s*)/, '');
  var r2 = r1.replace(/\s*$/, '');
  return r2;
}

function __valueOf(x, start, end){
  x = x.slice(start, end);
  return String.fromCharCode.apply(null, x);
}

function compareTo_3(thisStr, otherStr){
  thisStr = String(thisStr);
  if (thisStr == otherStr) {
    return 0;
  }
  return thisStr < otherStr?-1:1;
}

function compareTo_4(p0){
  return compareTo_3(this, dynamicCast(p0, 1));
}

function equals_11(other){
  return $equals_5(this, other);
}

function fromCodePoint(codePoint){
  var hiSurrogate, loSurrogate;
  if (codePoint >= 65536) {
    hiSurrogate = 55296 + (codePoint - 65536 >> 10 & 1023) & 65535;
    loSurrogate = 56320 + (codePoint - 65536 & 1023) & 65535;
    return String.fromCharCode(hiSurrogate) + String.fromCharCode(loSurrogate);
  }
   else {
    return String.fromCharCode(codePoint & 65535);
  }
}

function getClass_152(){
  return Ljava_lang_String_2_classLit;
}

function hashCode_13(){
  return getHashCode_0(this);
}

function toString_27(){
  return this;
}

_ = String.prototype;
_.compareTo$ = compareTo_4;
_.equals$ = equals_11;
_.getClass$ = getClass_152;
_.hashCode$ = hashCode_13;
_.toString$ = toString_27;
_.typeId$ = 2;
function $clinit_289(){
  $clinit_289 = nullMethod;
  back = {};
  front = {};
}

function compute(str){
  var hashCode, i, n, nBatch;
  hashCode = 0;
  n = str.length;
  nBatch = n - 4;
  i = 0;
  while (i < nBatch) {
    hashCode = str.charCodeAt(i + 3) + 31 * (str.charCodeAt(i + 2) + 31 * (str.charCodeAt(i + 1) + 31 * (str.charCodeAt(i) + 31 * hashCode))) | 0;
    i += 4;
  }
  while (i < n) {
    hashCode = hashCode * 31 + str.charCodeAt(i++);
  }
  return hashCode | 0;
}

function getHashCode_0(str){
  $clinit_289();
  var key = ':' + str;
  var result = front[key];
  if (result != null) {
    return result;
  }
  result = back[key];
  result == null && (result = compute(str));
  increment();
  return front[key] = result;
}

function increment(){
  if (count_0 == 256) {
    back = front;
    front = {};
    count_0 = 0;
  }
  ++count_0;
}

var back, count_0 = 0, front;
function $StringBuffer(this$static){
  var array;
  this$static.data_0 = (array = [] , array.explicitLength = 0 , array);
  return this$static;
}

function $StringBuffer_0(this$static, s){
  var array;
  this$static.data_0 = (array = [] , array.explicitLength = 0 , array);
  $append_1(this$static.data_0, s);
  return this$static;
}

function $append_2(this$static, x){
  $append_1(this$static.data_0, x);
  return this$static;
}

function getClass_153(){
  return Ljava_lang_StringBuffer_2_classLit;
}

function toString_28(){
  return $toString_1(this.data_0);
}

function StringBuffer(){
}

_ = StringBuffer.prototype = new Object_0;
_.getClass$ = getClass_153;
_.toString$ = toString_28;
_.typeId$ = 107;
function $StringBuilder(this$static){
  var array;
  this$static.data_0 = (array = [] , array.explicitLength = 0 , array);
  return this$static;
}

function $StringBuilder_0(this$static){
  var array;
  this$static.data_0 = (array = [] , array.explicitLength = 0 , array);
  return this$static;
}

function $StringBuilder_1(this$static, s){
  var array;
  this$static.data_0 = (array = [] , array.explicitLength = 0 , array);
  $append_1(this$static.data_0, s);
  return this$static;
}

function $append_3(this$static, x){
  $appendNonNull(this$static.data_0, String.fromCharCode(x));
  return this$static;
}

function $append_4(this$static, x){
  $append(this$static.data_0, x);
  return this$static;
}

function $append_5(this$static, x){
  $append_0(this$static.data_0, x);
  return this$static;
}

function $append_6(this$static, x){
  $append_1(this$static.data_0, x);
  return this$static;
}

function $replace_0(this$static, start, end, toInsert){
  $replace(this$static.data_0, start, end, toInsert);
  return this$static;
}

function getClass_154(){
  return Ljava_lang_StringBuilder_2_classLit;
}

function toString_29(){
  return $toString_1(this.data_0);
}

function StringBuilder(){
}

_ = StringBuilder.prototype = new Object_0;
_.getClass$ = getClass_154;
_.toString$ = toString_29;
_.typeId$ = 108;
function $UnsupportedOperationException(this$static){
  $fillInStackTrace();
  return this$static;
}

function $UnsupportedOperationException_0(this$static, message){
  $fillInStackTrace();
  this$static.detailMessage = message;
  return this$static;
}

function getClass_155(){
  return Ljava_lang_UnsupportedOperationException_2_classLit;
}

function UnsupportedOperationException(){
}

_ = UnsupportedOperationException.prototype = new RuntimeException;
_.getClass$ = getClass_155;
_.typeId$ = 109;
function $addAll(this$static, c){
  var changed, iter, outerIter, entry;
  iter = (outerIter = $keySet(c.map).val$entrySet.iterator() , $AbstractMap$1$1(new AbstractMap$1$1, outerIter));
  changed = false;
  while (iter.val$outerIter.hasNext()) {
    $add_5(this$static, (entry = dynamicCast(iter.val$outerIter.next(), 44) , entry.getKey())) && (changed = true);
  }
  return changed;
}

function $advanceToFind(iter, o){
  var t;
  while (iter.hasNext()) {
    t = iter.next();
    if (o == null?t == null:equals__devirtual$(o, t)) {
      return iter;
    }
  }
  return null;
}

function $toArray(this$static, a){
  var i, it, result, size, outerIter, entry;
  size = this$static.map.size;
  a.length < size && (a = createFrom(a, size));
  result = a;
  it = (outerIter = $keySet(this$static.map).val$entrySet.iterator() , $AbstractMap$1$1(new AbstractMap$1$1, outerIter));
  for (i = 0; i < size; ++i) {
    setCheck(result, i, (entry = dynamicCast(it.val$outerIter.next(), 44) , entry.getKey()));
  }
  a.length > size && setCheck(a, size, null);
  return a;
}

function $toString_7(this$static){
  var comma, iter, sb;
  sb = $StringBuffer(new StringBuffer);
  comma = null;
  $append_1(sb.data_0, '[');
  iter = this$static.iterator();
  while (iter.hasNext()) {
    comma != null?$append_1(sb.data_0, comma):(comma = ', ');
    $append_2(sb, '' + iter.next());
  }
  $append_1(sb.data_0, ']');
  return $toString_1(sb.data_0);
}

function add(o){
  throw $UnsupportedOperationException_0(new UnsupportedOperationException, 'Add not supported on this collection');
}

function contains(o){
  var iter;
  iter = $advanceToFind(this.iterator(), o);
  return !!iter;
}

function getClass_156(){
  return Ljava_util_AbstractCollection_2_classLit;
}

function toString_30(){
  return $toString_7(this);
}

function AbstractCollection(){
}

_ = AbstractCollection.prototype = new Object_0;
_.add_0 = add;
_.contains_0 = contains;
_.getClass$ = getClass_156;
_.toString$ = toString_30;
_.typeId$ = 0;
function $equals_6(this$static, obj){
  var entry, entry$iterator, otherKey, otherMap, otherValue;
  if ((obj == null?null:obj) === (this$static == null?null:this$static)) {
    return true;
  }
  if (!(obj != null && canCast(obj.typeId$, 60))) {
    return false;
  }
  otherMap = dynamicCast(obj, 60);
  if (this$static.size_0() != otherMap.size_0()) {
    return false;
  }
  for (entry$iterator = otherMap.entrySet_0().iterator(); entry$iterator.hasNext();) {
    entry = dynamicCast(entry$iterator.next(), 44);
    otherKey = entry.getKey();
    otherValue = entry.getValue();
    if (!this$static.containsKey(otherKey)) {
      return false;
    }
    if (!equalsWithNullCheck(otherValue, this$static.get(otherKey))) {
      return false;
    }
  }
  return true;
}

function $hashCode_2(this$static){
  var entry, entry$iterator, hashCode;
  hashCode = 0;
  for (entry$iterator = this$static.entrySet_0().iterator(); entry$iterator.hasNext();) {
    entry = dynamicCast(entry$iterator.next(), 44);
    hashCode += entry.hashCode$();
    hashCode = ~~hashCode;
  }
  return hashCode;
}

function $implFindEntry(this$static, key, remove){
  var entry, iter, k;
  for (iter = this$static.entrySet_0().iterator(); iter.hasNext();) {
    entry = dynamicCast(iter.next(), 44);
    k = entry.getKey();
    if (key == null?k == null:equals__devirtual$(key, k)) {
      remove && iter.remove_0();
      return entry;
    }
  }
  return null;
}

function $keySet(this$static){
  var entrySet;
  entrySet = this$static.entrySet_0();
  return $AbstractMap$1(new AbstractMap$1, this$static, entrySet);
}

function $toString_8(this$static){
  var comma, entry, iter, s;
  s = '{';
  comma = false;
  for (iter = this$static.entrySet_0().iterator(); iter.hasNext();) {
    entry = dynamicCast(iter.next(), 44);
    comma?(s += ', '):(comma = true);
    s += '' + entry.getKey();
    s += '=';
    s += '' + entry.getValue();
  }
  return s + '}';
}

function containsKey(key){
  return !!$implFindEntry(this, key, false);
}

function equals_12(obj){
  return $equals_6(this, obj);
}

function get_1(key){
  var entry;
  entry = $implFindEntry(this, key, false);
  return !entry?null:entry.getValue();
}

function getClass_157(){
  return Ljava_util_AbstractMap_2_classLit;
}

function hashCode_14(){
  return $hashCode_2(this);
}

function size_0(){
  return this.entrySet_0().size_0();
}

function toString_31(){
  return $toString_8(this);
}

function AbstractMap(){
}

_ = AbstractMap.prototype = new Object_0;
_.containsKey = containsKey;
_.equals$ = equals_12;
_.get = get_1;
_.getClass$ = getClass_157;
_.hashCode$ = hashCode_14;
_.size_0 = size_0;
_.toString$ = toString_31;
_.typeId$ = 110;
function $AbstractHashMap(this$static, ignored, alsoIgnored){
  $clearImpl(this$static);
  if (ignored < 0 || alsoIgnored < 0) {
    throw $IllegalArgumentException_0(new IllegalArgumentException, 'initial capacity was negative or load factor was non-positive');
  }
  return this$static;
}

function $addAllHashEntries(this$static, dest){
  var hashCodeMap = this$static.hashCodeMap;
  for (var hashCode in hashCodeMap) {
    if (hashCode == parseInt(hashCode)) {
      var array = hashCodeMap[hashCode];
      for (var i = 0, c = array.length; i < c; ++i) {
        dest.add_0(array[i]);
      }
    }
  }
}

function $addAllStringEntries(this$static, dest){
  var stringMap = this$static.stringMap;
  for (var key in stringMap) {
    if (key.charCodeAt(0) == 58) {
      var entry = new_$(this$static, key.substring(1));
      dest.add_0(entry);
    }
  }
}

function $clearImpl(this$static){
  this$static.hashCodeMap = [];
  this$static.stringMap = {};
  this$static.nullSlotLive = false;
  this$static.nullSlot = null;
  this$static.size = 0;
}

function $containsKey(this$static, key){
  return key == null?this$static.nullSlotLive:key != null && canCast(key.typeId$, 1)?$hasStringValue(this$static, dynamicCast(key, 1)):$hasHashValue(this$static, key, ~~hashCode__devirtual$(key));
}

function $get_1(this$static, key){
  return key == null?this$static.nullSlot:key != null && canCast(key.typeId$, 1)?this$static.stringMap[':' + dynamicCast(key, 1)]:$getHashValue(this$static, key, ~~hashCode__devirtual$(key));
}

function $getHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        return entry.getValue();
      }
    }
  }
  return null;
}

function $hasHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        return true;
      }
    }
  }
  return false;
}

function $hasStringValue(this$static, key){
  return ':' + key in this$static.stringMap;
}

--></script>
<script><!--
function $put(this$static, key, value){
  return key == null?$putNullSlot(this$static, value):key != null && canCast(key.typeId$, 1)?$putStringValue(this$static, dynamicCast(key, 1), value):$putHashValue(this$static, key, value, ~~hashCode__devirtual$(key));
}

function $putHashValue(this$static, key, value, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        var previous = entry.getValue();
        entry.setValue(value);
        return previous;
      }
    }
  }
   else {
    array = this$static.hashCodeMap[hashCode] = [];
  }
  var entry = $MapEntryImpl(new MapEntryImpl, key, value);
  array.push(entry);
  ++this$static.size;
  return null;
}

function $putNullSlot(this$static, value){
  var result;
  result = this$static.nullSlot;
  this$static.nullSlot = value;
  if (!this$static.nullSlotLive) {
    this$static.nullSlotLive = true;
    ++this$static.size;
  }
  return result;
}

function $putStringValue(this$static, key, value){
  var result, stringMap = this$static.stringMap;
  key = ':' + key;
  key in stringMap?(result = stringMap[key]):++this$static.size;
  stringMap[key] = value;
  return result;
}

function $remove_3(this$static, key){
  return key == null?$removeNullSlot(this$static):key != null && canCast(key.typeId$, 1)?$removeStringValue(this$static, dynamicCast(key, 1)):$removeHashValue(this$static, key, ~~hashCode__devirtual$(key));
}

function $removeHashValue(this$static, key, hashCode){
  var array = this$static.hashCodeMap[hashCode];
  if (array) {
    for (var i = 0, c = array.length; i < c; ++i) {
      var entry = array[i];
      var entryKey = entry.getKey();
      if (this$static.equalsBridge(key, entryKey)) {
        array.length == 1?delete this$static.hashCodeMap[hashCode]:array.splice(i, 1);
        --this$static.size;
        return entry.getValue();
      }
    }
  }
  return null;
}

function $removeNullSlot(this$static){
  var result;
  result = this$static.nullSlot;
  this$static.nullSlot = null;
  if (this$static.nullSlotLive) {
    this$static.nullSlotLive = false;
    --this$static.size;
  }
  return result;
}

function $removeStringValue(this$static, key){
  var result, stringMap = this$static.stringMap;
  key = ':' + key;
  if (key in stringMap) {
    result = stringMap[key];
    --this$static.size;
    delete stringMap[key];
  }
  return result;
}

function containsKey_0(key){
  return key == null?dynamicCast(this, 58).nullSlotLive:key != null && canCast(key.typeId$, 1)?$hasStringValue(dynamicCast(this, 58), dynamicCast(key, 1)):$hasHashValue(dynamicCast(this, 58), key, ~~(dynamicCast(this, 58) , hashCode__devirtual$(key)));
}

function entrySet_0(){
  return $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet, dynamicCast(this, 58));
}

function equalsBridge(value1, value2){
  return (value1 == null?null:value1) === (value2 == null?null:value2) || value1 != null && equals__devirtual$(value1, value2);
}

function get_2(key){
  return key == null?dynamicCast(this, 58).nullSlot:key != null && canCast(key.typeId$, 1)?dynamicCast(this, 58).stringMap[':' + dynamicCast(key, 1)]:$getHashValue(dynamicCast(this, 58), key, ~~(dynamicCast(this, 58) , hashCode__devirtual$(key)));
}

function getClass_158(){
  return Ljava_util_AbstractHashMap_2_classLit;
}

function size_1(){
  return dynamicCast(this, 58).size;
}

function AbstractHashMap(){
}

_ = AbstractHashMap.prototype = new AbstractMap;
_.containsKey = containsKey_0;
_.entrySet_0 = entrySet_0;
_.equalsBridge = equalsBridge;
_.get = get_2;
_.getClass$ = getClass_158;
_.size_0 = size_1;
_.typeId$ = 111;
_.hashCodeMap = null;
_.nullSlot = null;
_.nullSlotLive = false;
_.size = 0;
_.stringMap = null;
function equals_13(o){
  var iter, other, otherItem;
  if ((o == null?null:o) === this) {
    return true;
  }
  if (!(o != null && canCast(o.typeId$, 61))) {
    return false;
  }
  other = dynamicCast(o, 61);
  if (other.size_0() != this.size_0()) {
    return false;
  }
  for (iter = other.iterator(); iter.hasNext();) {
    otherItem = iter.next();
    if (!this.contains_0(otherItem)) {
      return false;
    }
  }
  return true;
}

function getClass_159(){
  return Ljava_util_AbstractSet_2_classLit;
}

function hashCode_15(){
  var hashCode, iter, next;
  hashCode = 0;
  for (iter = this.iterator(); iter.hasNext();) {
    next = iter.next();
    if (next != null) {
      hashCode += hashCode__devirtual$(next);
      hashCode = ~~hashCode;
    }
  }
  return hashCode;
}

function AbstractSet(){
}

_ = AbstractSet.prototype = new AbstractCollection;
_.equals$ = equals_13;
_.getClass$ = getClass_159;
_.hashCode$ = hashCode_15;
_.typeId$ = 112;
function $AbstractHashMap$EntrySet(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $contains(this$static, o){
  var entry, key, value;
  if (o != null && canCast(o.typeId$, 44)) {
    entry = dynamicCast(o, 44);
    key = entry.getKey();
    if ($containsKey(this$static.this$0, key)) {
      value = $get_1(this$static.this$0, key);
      return $equals_8(entry.getValue(), value);
    }
  }
  return false;
}

function contains_0(o){
  return $contains(this, o);
}

function getClass_160(){
  return Ljava_util_AbstractHashMap$EntrySet_2_classLit;
}

function iterator_2(){
  return $AbstractHashMap$EntrySetIterator(new AbstractHashMap$EntrySetIterator, this.this$0);
}

function size_2(){
  return this.this$0.size;
}

function AbstractHashMap$EntrySet(){
}

_ = AbstractHashMap$EntrySet.prototype = new AbstractSet;
_.contains_0 = contains_0;
_.getClass$ = getClass_160;
_.iterator = iterator_2;
_.size_0 = size_2;
_.typeId$ = 113;
_.this$0 = null;
function $AbstractHashMap$EntrySetIterator(this$static, this$0){
  var list;
  this$static.this$0 = this$0;
  list = $ArrayList(new ArrayList);
  this$static.this$0.nullSlotLive && $add_3(list, $AbstractHashMap$MapEntryNull(new AbstractHashMap$MapEntryNull, this$static.this$0));
  $addAllStringEntries(this$static.this$0, list);
  $addAllHashEntries(this$static.this$0, list);
  this$static.iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, list);
  return this$static;
}

function getClass_161(){
  return Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit;
}

function hasNext_1(){
  return $hasNext_0(this.iter);
}

function next_2(){
  return this.last = dynamicCast($next_2(this.iter), 44);
}

function remove_5(){
  if (!this.last) {
    throw $IllegalStateException_0(new IllegalStateException, 'Must call next() before remove().');
  }
   else {
    $remove_4(this.iter);
    $remove_3(this.this$0, this.last.getKey());
    this.last = null;
  }
}

function AbstractHashMap$EntrySetIterator(){
}

_ = AbstractHashMap$EntrySetIterator.prototype = new Object_0;
_.getClass$ = getClass_161;
_.hasNext = hasNext_1;
_.next = next_2;
_.remove_0 = remove_5;
_.typeId$ = 0;
_.iter = null;
_.last = null;
_.this$0 = null;
function equals_14(other){
  var entry;
  if (other != null && canCast(other.typeId$, 44)) {
    entry = dynamicCast(other, 44);
    if (equalsWithNullCheck(this.getKey(), entry.getKey()) && equalsWithNullCheck(this.getValue(), entry.getValue())) {
      return true;
    }
  }
  return false;
}

function getClass_162(){
  return Ljava_util_AbstractMapEntry_2_classLit;
}

function hashCode_16(){
  var keyHash, valueHash;
  keyHash = 0;
  valueHash = 0;
  this.getKey() != null && (keyHash = hashCode__devirtual$(this.getKey()));
  this.getValue() != null && (valueHash = hashCode__devirtual$(this.getValue()));
  return keyHash ^ valueHash;
}

function toString_32(){
  return this.getKey() + '=' + this.getValue();
}

function AbstractMapEntry(){
}

_ = AbstractMapEntry.prototype = new Object_0;
_.equals$ = equals_14;
_.getClass$ = getClass_162;
_.hashCode$ = hashCode_16;
_.toString$ = toString_32;
_.typeId$ = 114;
function $AbstractHashMap$MapEntryNull(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function getClass_163(){
  return Ljava_util_AbstractHashMap$MapEntryNull_2_classLit;
}

function getKey(){
  return null;
}

function getValue(){
  return this.this$0.nullSlot;
}

function setValue(object){
  return $putNullSlot(this.this$0, object);
}

function AbstractHashMap$MapEntryNull(){
}

_ = AbstractHashMap$MapEntryNull.prototype = new AbstractMapEntry;
_.getClass$ = getClass_163;
_.getKey = getKey;
_.getValue = getValue;
_.setValue = setValue;
_.typeId$ = 115;
_.this$0 = null;
function $AbstractHashMap$MapEntryString(this$static, key, this$0){
  this$static.this$0 = this$0;
  this$static.key = key;
  return this$static;
}

function getClass_164(){
  return Ljava_util_AbstractHashMap$MapEntryString_2_classLit;
}

function getKey_0(){
  return this.key;
}

function getValue_0(){
  return this.this$0.stringMap[':' + this.key];
}

function new_$(this$outer, key){
  return $AbstractHashMap$MapEntryString(new AbstractHashMap$MapEntryString, key, this$outer);
}

function setValue_0(object){
  return $putStringValue(this.this$0, this.key, object);
}

function AbstractHashMap$MapEntryString(){
}

_ = AbstractHashMap$MapEntryString.prototype = new AbstractMapEntry;
_.getClass$ = getClass_164;
_.getKey = getKey_0;
_.getValue = getValue_0;
_.setValue = setValue_0;
_.typeId$ = 116;
_.key = null;
_.this$0 = null;
function $equals_7(this$static, o){
  var elem, elemOther, iter, iterOther, other;
  if ((o == null?null:o) === (this$static == null?null:this$static)) {
    return true;
  }
  if (!(o != null && canCast(o.typeId$, 59))) {
    return false;
  }
  other = dynamicCast(o, 59);
  if (this$static.size != other.size_0()) {
    return false;
  }
  iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, this$static);
  iterOther = other.iterator();
  while (iter.i < iter.this$0.size) {
    elem = $next_2(iter);
    elemOther = iterOther.next();
    if (!(elem == null?elemOther == null:equals__devirtual$(elem, elemOther))) {
      return false;
    }
  }
  return true;
}

function $hashCode_3(this$static){
  var iter, k, obj;
  k = 1;
  iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, this$static);
  while (iter.i < iter.this$0.size) {
    obj = $next_2(iter);
    k = 31 * k + (obj == null?0:hashCode__devirtual$(obj));
    k = ~~k;
  }
  return k;
}

function add_0(obj){
  $add_4(this, this.size_0(), obj);
  return true;
}

function checkIndex(index, size){
  (index < 0 || index >= size) && indexOutOfBounds(index, size);
}

function equals_15(o){
  return $equals_7(this, o);
}

function getClass_165(){
  return Ljava_util_AbstractList_2_classLit;
}

function hashCode_17(){
  return $hashCode_3(this);
}

function indexOutOfBounds(index, size){
  throw $IndexOutOfBoundsException_0(new IndexOutOfBoundsException, 'Index: ' + index + ', Size: ' + size);
}

function iterator_3(){
  return $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, this);
}

function AbstractList(){
}

_ = AbstractList.prototype = new AbstractCollection;
_.add_0 = add_0;
_.equals$ = equals_15;
_.getClass$ = getClass_165;
_.hashCode$ = hashCode_17;
_.iterator = iterator_3;
_.typeId$ = 117;
function $AbstractList$IteratorImpl(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function $hasNext_0(this$static){
  return this$static.i < this$static.this$0.size;
}

function $next_2(this$static){
  if (this$static.i >= this$static.this$0.size) {
    throw $NoSuchElementException(new NoSuchElementException);
  }
  return $get_2(this$static.this$0, this$static.last = this$static.i++);
}

function $remove_4(this$static){
  if (this$static.last < 0) {
    throw $IllegalStateException(new IllegalStateException);
  }
  $remove_5(this$static.this$0, this$static.last);
  this$static.i = this$static.last;
  this$static.last = -1;
}

function getClass_166(){
  return Ljava_util_AbstractList$IteratorImpl_2_classLit;
}

function hasNext_2(){
  return this.i < this.this$0.size;
}

function next_3(){
  return $next_2(this);
}

function remove_6(){
  $remove_4(this);
}

function AbstractList$IteratorImpl(){
}

_ = AbstractList$IteratorImpl.prototype = new Object_0;
_.getClass$ = getClass_166;
_.hasNext = hasNext_2;
_.next = next_3;
_.remove_0 = remove_6;
_.typeId$ = 0;
_.i = 0;
_.last = -1;
_.this$0 = null;
function $AbstractMap$1(this$static, this$0, val$entrySet){
  this$static.this$0 = this$0;
  this$static.val$entrySet = val$entrySet;
  return this$static;
}

function contains_1(key){
  return this.this$0.containsKey(key);
}

function getClass_167(){
  return Ljava_util_AbstractMap$1_2_classLit;
}

function iterator_4(){
  var outerIter;
  return outerIter = this.val$entrySet.iterator() , $AbstractMap$1$1(new AbstractMap$1$1, outerIter);
}

function size_3(){
  return this.val$entrySet.size_0();
}

function AbstractMap$1(){
}

_ = AbstractMap$1.prototype = new AbstractSet;
_.contains_0 = contains_1;
_.getClass$ = getClass_167;
_.iterator = iterator_4;
_.size_0 = size_3;
_.typeId$ = 118;
_.this$0 = null;
_.val$entrySet = null;
function $AbstractMap$1$1(this$static, val$outerIter){
  this$static.val$outerIter = val$outerIter;
  return this$static;
}

function getClass_168(){
  return Ljava_util_AbstractMap$1$1_2_classLit;
}

function hasNext_3(){
  return this.val$outerIter.hasNext();
}

function next_4(){
  var entry;
  return entry = dynamicCast(this.val$outerIter.next(), 44) , entry.getKey();
}

function remove_7(){
  this.val$outerIter.remove_0();
}

function AbstractMap$1$1(){
}

_ = AbstractMap$1$1.prototype = new Object_0;
_.getClass$ = getClass_168;
_.hasNext = hasNext_3;
_.next = next_4;
_.remove_0 = remove_7;
_.typeId$ = 0;
_.val$outerIter = null;
function $ArrayList(this$static){
  this$static.array = initDim(_3Ljava_lang_Object_2_classLit, 158, 0, 0, 0);
  return this$static;
}

function $add_3(this$static, o){
  setCheck(this$static.array, this$static.size++, o);
  return true;
}

function $add_4(this$static, index, o){
  (index < 0 || index > this$static.size) && indexOutOfBounds(index, this$static.size);
  this$static.array.splice(index, 0, o);
  ++this$static.size;
}

function $get_2(this$static, index){
  checkIndex(index, this$static.size);
  return this$static.array[index];
}

function $indexOf_1(this$static, o, index){
  for (; index < this$static.size; ++index) {
    if (equalsWithNullCheck(o, this$static.array[index])) {
      return index;
    }
  }
  return -1;
}

function $remove_5(this$static, index){
  var previous;
  previous = (checkIndex(index, this$static.size) , this$static.array[index]);
  this$static.array.splice(index, 1);
  --this$static.size;
  return previous;
}

function $remove_6(this$static, o){
  var i;
  i = $indexOf_1(this$static, o, 0);
  if (i == -1) {
    return false;
  }
  $remove_5(this$static, i);
  return true;
}

function $toArray_0(this$static, out){
  var i, a, result;
  out.length < this$static.size && (out = (a = out , result = createFromSeed(0, this$static.size) , initValues(a.arrayClass$, a.typeId$, a.queryId$, result) , result));
  for (i = 0; i < this$static.size; ++i) {
    setCheck(out, i, this$static.array[i]);
  }
  out.length > this$static.size && setCheck(out, this$static.size, null);
  return out;
}

function add_1(o){
  return setCheck(this.array, this.size++, o) , true;
}

function contains_2(o){
  return $indexOf_1(this, o, 0) != -1;
}

function getClass_169(){
  return Ljava_util_ArrayList_2_classLit;
}

function size_4(){
  return this.size;
}

function ArrayList(){
}

_ = ArrayList.prototype = new AbstractList;
_.add_0 = add_1;
_.contains_0 = contains_2;
_.getClass$ = getClass_169;
_.size_0 = size_4;
_.typeId$ = 119;
_.size = 0;
function deepToString(a, arraysIveSeen){
  var b, i, obj, objArray, tempSet, old;
  if (a == null) {
    return 'null';
  }
  if ($containsKey(arraysIveSeen.map, a)) {
    return '[...]';
  }
  old = $put(arraysIveSeen.map, a, arraysIveSeen);
  b = $StringBuffer_0(new StringBuffer, '[');
  for (i = 0; i < a.length; ++i) {
    i != 0 && $append_1(b.data_0, ', ');
    obj = a[i];
    if (obj == null) {
      $append_1(b.data_0, 'null');
    }
     else if (((obj.typeMarker$ == nullMethod || obj.typeId$ == 2?obj.getClass$():Lcom_google_gwt_core_client_JavaScriptObject_2_classLit).modifiers & 4) != 0) {
      if (obj != null && canCast(obj.typeId$, 62)) {
        if ($containsKey(arraysIveSeen.map, obj)) {
          $append_1(b.data_0, '[...]');
        }
         else {
          objArray = dynamicCast(obj, 62);
          tempSet = $HashSet_0(new HashSet, arraysIveSeen);
          $append_2(b, deepToString(objArray, tempSet));
        }
      }
       else 
        obj != null && canCast(obj.typeId$, 63)?$append_2(b, toString_33(dynamicCast(obj, 63))):obj != null && canCast(obj.typeId$, 64)?$append_2(b, toString_35(dynamicCast(obj, 64))):obj != null && canCast(obj.typeId$, 12) && $append_2(b, toString_34(dynamicCast(obj, 12)));
    }
     else {
      $append_1(b.data_0, '' + obj);
    }
  }
  $append_1(b.data_0, ']');
  return $toString_1(b.data_0);
}

function hashCode_18(a){
  var hashCode, i, n;
  if (a == null) {
    return 0;
  }
  hashCode = 1;
  for (i = 0 , n = a.length; i < n; ++i) {
    hashCode = 31 * hashCode + ~~Math.max(Math.min(a[i], 2147483647), -2147483648) | 0;
  }
  return hashCode;
}

function toString_33(a){
  var b, i;
  if (a == null) {
    return 'null';
  }
  b = $StringBuffer_0(new StringBuffer, '[');
  for (i = 0; i < a.length; ++i) {
    i != 0 && $append_1(b.data_0, ', ');
    $append_2(b, String.fromCharCode(a[i]));
  }
  $append_1(b.data_0, ']');
  return $toString_1(b.data_0);
}

function toString_34(a){
  var b, i;
  if (a == null) {
    return 'null';
  }
  b = $StringBuffer_0(new StringBuffer, '[');
  for (i = 0; i < a.length; ++i) {
    i != 0 && $append_1(b.data_0, ', ');
    $append_1(b.data_0, '' + a[i]);
  }
  $append_1(b.data_0, ']');
  return $toString_1(b.data_0);
}

function toString_35(a){
  var b, i;
  if (a == null) {
    return 'null';
  }
  b = $StringBuffer_0(new StringBuffer, '[');
  for (i = 0; i < a.length; ++i) {
    i != 0 && $append_1(b.data_0, ', ');
    $append_1(b.data_0, '' + a[i]);
  }
  $append_1(b.data_0, ']');
  return $toString_1(b.data_0);
}

function $clinit_309(){
  $clinit_309 = nullMethod;
  unmodifiableList($ArrayList(new ArrayList));
  $Collections$UnmodifiableMap(new Collections$UnmodifiableMap, $HashMap(new HashMap));
  $Collections$UnmodifiableCollection(new Collections$UnmodifiableSet, $HashSet(new HashSet));
}

function unmodifiableList(list){
  return list?$Collections$UnmodifiableRandomAccessList(new Collections$UnmodifiableRandomAccessList, list):$Collections$UnmodifiableList(new Collections$UnmodifiableList, list);
}

function $Collections$UnmodifiableCollection(this$static, coll){
  this$static.coll = coll;
  return this$static;
}

function add_2(o){
  throw $UnsupportedOperationException(new UnsupportedOperationException);
}

function getClass_170(){
  return Ljava_util_Collections$UnmodifiableCollection_2_classLit;
}

function iterator_5(){
  return $Collections$UnmodifiableCollectionIterator(new Collections$UnmodifiableCollectionIterator, this.coll.iterator());
}

function size_5(){
  return this.coll.size_0();
}

function toString_36(){
  return this.coll.toString$();
}

function Collections$UnmodifiableCollection(){
}

_ = Collections$UnmodifiableCollection.prototype = new Object_0;
_.add_0 = add_2;
_.getClass$ = getClass_170;
_.iterator = iterator_5;
_.size_0 = size_5;
_.toString$ = toString_36;
_.typeId$ = 0;
_.coll = null;
function $Collections$UnmodifiableCollectionIterator(this$static, it){
  this$static.it = it;
  return this$static;
}

function getClass_171(){
  return Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit;
}

function hasNext_4(){
  return this.it.hasNext();
}

function next_5(){
  return this.it.next();
}

function remove_8(){
  throw $UnsupportedOperationException(new UnsupportedOperationException);
}

function Collections$UnmodifiableCollectionIterator(){
}

_ = Collections$UnmodifiableCollectionIterator.prototype = new Object_0;
_.getClass$ = getClass_171;
_.hasNext = hasNext_4;
_.next = next_5;
_.remove_0 = remove_8;
_.typeId$ = 0;
_.it = null;
function $Collections$UnmodifiableList(this$static, list){
  this$static.coll = list;
  this$static.list = list;
  return this$static;
}

function equals_16(o){
  return $equals_7(this.list, o);
}

function getClass_172(){
  return Ljava_util_Collections$UnmodifiableList_2_classLit;
}

function hashCode_19(){
  return $hashCode_3(this.list);
}

function Collections$UnmodifiableList(){
}

_ = Collections$UnmodifiableList.prototype = new Collections$UnmodifiableCollection;
_.equals$ = equals_16;
_.getClass$ = getClass_172;
_.hashCode$ = hashCode_19;
_.typeId$ = 120;
_.list = null;
function $Collections$UnmodifiableMap(this$static, map){
  this$static.map = map;
  return this$static;
}

function entrySet_1(){
  !this.entrySet && (this.entrySet = $Collections$UnmodifiableMap$UnmodifiableEntrySet(new Collections$UnmodifiableMap$UnmodifiableEntrySet, $AbstractHashMap$EntrySet(new AbstractHashMap$EntrySet, this.map)));
  return this.entrySet;
}

function equals_17(o){
  return $equals_6(this.map, o);
}

function getClass_173(){
  return Ljava_util_Collections$UnmodifiableMap_2_classLit;
}

function hashCode_20(){
  return $hashCode_2(this.map);
}

function size_6(){
  return this.map.size;
}

function toString_37(){
  return $toString_8(this.map);
}

function Collections$UnmodifiableMap(){
}

_ = Collections$UnmodifiableMap.prototype = new Object_0;
_.entrySet_0 = entrySet_1;
_.equals$ = equals_17;
_.getClass$ = getClass_173;
_.hashCode$ = hashCode_20;
_.size_0 = size_6;
_.toString$ = toString_37;
_.typeId$ = 121;
_.entrySet = null;
_.map = null;
function $Collections$UnmodifiableSet(this$static, set){
  this$static.coll = set;
  return this$static;
}

function equals_18(o){
  return this.coll.equals$(o);
}

function getClass_174(){
  return Ljava_util_Collections$UnmodifiableSet_2_classLit;
}

function hashCode_21(){
  return this.coll.hashCode$();
}

function Collections$UnmodifiableSet(){
}

_ = Collections$UnmodifiableSet.prototype = new Collections$UnmodifiableCollection;
_.equals$ = equals_18;
_.getClass$ = getClass_174;
_.hashCode$ = hashCode_21;
_.typeId$ = 122;
function $Collections$UnmodifiableMap$UnmodifiableEntrySet(this$static, s){
  this$static.coll = s;
  return this$static;
}

function getClass_175(){
  return Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit;
}

function iterator_6(){
  var it;
  it = this.coll.iterator();
  return $Collections$UnmodifiableMap$UnmodifiableEntrySet$1(new Collections$UnmodifiableMap$UnmodifiableEntrySet$1, it);
}

function Collections$UnmodifiableMap$UnmodifiableEntrySet(){
}

_ = Collections$UnmodifiableMap$UnmodifiableEntrySet.prototype = new Collections$UnmodifiableSet;
_.getClass$ = getClass_175;
_.iterator = iterator_6;
_.typeId$ = 123;
function $Collections$UnmodifiableMap$UnmodifiableEntrySet$1(this$static, val$it){
  this$static.val$it = val$it;
  return this$static;
}

function getClass_176(){
  return Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit;
}

function hasNext_5(){
  return this.val$it.hasNext();
}

function next_6(){
  return $Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(new Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry, dynamicCast(this.val$it.next(), 44));
}

function remove_9(){
  throw $UnsupportedOperationException(new UnsupportedOperationException);
}

function Collections$UnmodifiableMap$UnmodifiableEntrySet$1(){
}

_ = Collections$UnmodifiableMap$UnmodifiableEntrySet$1.prototype = new Object_0;
_.getClass$ = getClass_176;
_.hasNext = hasNext_5;
_.next = next_6;
_.remove_0 = remove_9;
_.typeId$ = 0;
_.val$it = null;
function $Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(this$static, entry){
  this$static.entry = entry;
  return this$static;
}

function equals_19(o){
  return this.entry.equals$(o);
}

function getClass_177(){
  return Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit;
}

function getKey_1(){
  return this.entry.getKey();
}

function getValue_1(){
  return this.entry.getValue();
}

function hashCode_22(){
  return this.entry.hashCode$();
}

function setValue_1(value){
  throw $UnsupportedOperationException(new UnsupportedOperationException);
}

function toString_38(){
  return toString__devirtual$(this.entry);
}

function Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry(){
}

_ = Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry.prototype = new Object_0;
_.equals$ = equals_19;
_.getClass$ = getClass_177;
_.getKey = getKey_1;
_.getValue = getValue_1;
_.hashCode$ = hashCode_22;
_.setValue = setValue_1;
_.toString$ = toString_38;
_.typeId$ = 124;
_.entry = null;
function $Collections$UnmodifiableRandomAccessList(this$static, list){
  this$static.coll = list;
  this$static.list = list;
  return this$static;
}

function getClass_178(){
  return Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit;
}

function Collections$UnmodifiableRandomAccessList(){
}

_ = Collections$UnmodifiableRandomAccessList.prototype = new Collections$UnmodifiableList;
_.getClass$ = getClass_178;
_.typeId$ = 125;
function $HashMap(this$static){
  $clearImpl(this$static);
  return this$static;
}

function $HashMap_0(this$static, ignored){
  $AbstractHashMap(this$static, ignored, 0);
  return this$static;
}

function $equals_8(value1, value2){
  return (value1 == null?null:value1) === (value2 == null?null:value2) || value1 != null && equals__devirtual$(value1, value2);
}

function getClass_179(){
  return Ljava_util_HashMap_2_classLit;
}

function HashMap(){
}

_ = HashMap.prototype = new AbstractHashMap;
_.getClass$ = getClass_179;
_.typeId$ = 126;
function $HashSet(this$static){
  this$static.map = $HashMap(new HashMap);
  return this$static;
}

function $HashSet_0(this$static, c){
  this$static.map = $HashMap_0(new HashMap, c.map.size);
  $addAll(this$static, c);
  return this$static;
}

function $add_5(this$static, o){
  var old;
  old = $put(this$static.map, o, this$static);
  return old == null;
}

function add_3(o){
  var old;
  return old = $put(this.map, o, this) , old == null;
}

function contains_3(o){
  return $containsKey(this.map, o);
}

function getClass_180(){
  return Ljava_util_HashSet_2_classLit;
}

function iterator_7(){
  var outerIter;
  return outerIter = $keySet(this.map).val$entrySet.iterator() , $AbstractMap$1$1(new AbstractMap$1$1, outerIter);
}

function size_7(){
  return this.map.size;
}

function toString_39(){
  return $toString_7($keySet(this.map));
}

function HashSet(){
}

_ = HashSet.prototype = new AbstractSet;
_.add_0 = add_3;
_.contains_0 = contains_3;
_.getClass$ = getClass_180;
_.iterator = iterator_7;
_.size_0 = size_7;
_.toString$ = toString_39;
_.typeId$ = 127;
_.map = null;
function $MapEntryImpl(this$static, key, value){
  this$static.key = key;
  this$static.value_0 = value;
  return this$static;
}

function getClass_181(){
  return Ljava_util_MapEntryImpl_2_classLit;
}

function getKey_2(){
  return this.key;
}

function getValue_2(){
  return this.value_0;
}

function setValue_2(value){
  var old;
  old = this.value_0;
  this.value_0 = value;
  return old;
}

function MapEntryImpl(){
}

_ = MapEntryImpl.prototype = new AbstractMapEntry;
_.getClass$ = getClass_181;
_.getKey = getKey_2;
_.getValue = getValue_2;
_.setValue = setValue_2;
_.typeId$ = 128;
_.key = null;
_.value_0 = null;
function $NoSuchElementException(this$static){
  $fillInStackTrace();
  return this$static;
}

function getClass_182(){
  return Ljava_util_NoSuchElementException_2_classLit;
}

function NoSuchElementException(){
}

_ = NoSuchElementException.prototype = new RuntimeException;
_.getClass$ = getClass_182;
_.typeId$ = 129;
function $clinit_331(){
  $clinit_331 = nullMethod;
  DEFAULT_COMPARATOR = new TreeMap$1;
}

function $TreeMap(this$static){
  $clinit_331();
  $TreeMap_0(this$static, null);
  return this$static;
}

function $TreeMap_0(this$static, c){
  $clinit_331();
  this$static.root = null;
  !c && (c = DEFAULT_COMPARATOR);
  return this$static;
}

function $get_3(this$static, k){
  var entry, key;
  key = k;
  entry = $getEntry(this$static, key);
  return entry?entry.value_0:null;
}

function $getEntry(this$static, key){
  var c, tree;
  tree = this$static.root;
  while (tree) {
    c = $compare_0(key, tree.key);
    if (c == 0) {
      return tree;
    }
    c < 0?(tree = tree.child[0]):(tree = tree.child[1]);
  }
  return null;
}

function $insert_0(this$static, tree, newNode, state){
  var c, childNum;
  if (!tree) {
    return newNode;
  }
   else {
    c = $compare_0(tree.key, newNode.key);
    if (c == 0) {
      state.value_0 = tree.value_0;
      state.found = true;
      tree.value_0 = newNode.value_0;
      return tree;
    }
    childNum = c > 0?0:1;
    tree.child[childNum] = $insert_0(this$static, tree.child[childNum], newNode, state);
    if ($isRed(tree.child[childNum])) {
      if ($isRed(tree.child[1 - childNum])) {
        tree.isRed = true;
        tree.child[0].isRed = false;
        tree.child[1].isRed = false;
      }
       else {
        $isRed(tree.child[childNum].child[childNum])?(tree = $rotateSingle(tree, 1 - childNum)):$isRed(tree.child[childNum].child[1 - childNum]) && (tree = (tree.child[1 - (1 - childNum)] = $rotateSingle(tree.child[1 - (1 - childNum)], 1 - (1 - childNum)) , $rotateSingle(tree, 1 - childNum)));
      }
    }
  }
  return tree;
}

function $isRed(node){
  return !!node && node.isRed;
}

--></script>
<script><!--
function $put_0(this$static, key, value){
  var node, state;
  node = $TreeMap$Node(new TreeMap$Node, key, value);
  state = new TreeMap$State;
  this$static.root = $insert_0(this$static, this$static.root, node, state);
  !state.found && ++this$static.size;
  this$static.root.isRed = false;
  return state.value_0;
}

function $remove_8(this$static, keyObj){
  var key, state;
  key = keyObj;
  state = new TreeMap$State;
  $removeWithState(this$static, key, state);
  return state.value_0;
}

function $removeWithState(this$static, key, state){
  var c, dir, dir2, found, grandparent, head, last, newNode, node, parent_0, sibling;
  if (!this$static.root) {
    return false;
  }
  found = null;
  parent_0 = null;
  grandparent = null;
  head = $TreeMap$Node(new TreeMap$Node, null, null);
  dir = 1;
  head.child[1] = this$static.root;
  node = head;
  while (node.child[dir]) {
    last = dir;
    grandparent = parent_0;
    parent_0 = node;
    node = node.child[dir];
    c = $compare_0(node.key, key);
    dir = c < 0?1:0;
    c == 0 && (!state.matchValue || equals__devirtual$(node.value_0, state.value_0)) && (found = node);
    if (!(!!node && node.isRed) && !$isRed(node.child[dir])) {
      if ($isRed(node.child[1 - dir])) {
        parent_0 = parent_0.child[last] = $rotateSingle(node, dir);
      }
       else if (!$isRed(node.child[1 - dir])) {
        sibling = parent_0.child[1 - last];
        if (sibling) {
          if (!$isRed(sibling.child[1 - last]) && !$isRed(sibling.child[last])) {
            parent_0.isRed = false;
            sibling.isRed = true;
            node.isRed = true;
          }
           else {
            dir2 = grandparent.child[1] == parent_0?1:0;
            $isRed(sibling.child[last])?(grandparent.child[dir2] = (parent_0.child[1 - last] = $rotateSingle(parent_0.child[1 - last], 1 - last) , $rotateSingle(parent_0, last))):$isRed(sibling.child[1 - last]) && (grandparent.child[dir2] = $rotateSingle(parent_0, last));
            node.isRed = grandparent.child[dir2].isRed = true;
            grandparent.child[dir2].child[0].isRed = false;
            grandparent.child[dir2].child[1].isRed = false;
          }
        }
      }
    }
  }
  if (found) {
    state.found = true;
    state.value_0 = found.value_0;
    if (node != found) {
      newNode = $TreeMap$Node(new TreeMap$Node, node.key, node.value_0);
      $replaceNode_0(head, found, newNode);
      parent_0 == found && (parent_0 = newNode);
    }
    parent_0.child[parent_0.child[1] == node?1:0] = node.child[!node.child[0]?1:0];
    --this$static.size;
  }
  this$static.root = head.child[1];
  !!this$static.root && (this$static.root.isRed = false);
  return state.found;
}

function $replaceNode_0(head, node, newNode){
  var direction, parent_0;
  parent_0 = head;
  direction = parent_0.key == null || $compare_0(node.key, parent_0.key) > 0?1:0;
  while (parent_0.child[direction] != node) {
    parent_0 = parent_0.child[direction];
    direction = $compare_0(node.key, parent_0.key) > 0?1:0;
  }
  parent_0.child[direction] = newNode;
  newNode.isRed = node.isRed;
  newNode.child[0] = node.child[0];
  newNode.child[1] = node.child[1];
  setCheck(node.child, 0, null);
  setCheck(node.child, 1, null);
}

function $rotateSingle(tree, rotateDirection){
  var save;
  save = tree.child[1 - rotateDirection];
  tree.child[1 - rotateDirection] = save.child[rotateDirection];
  save.child[rotateDirection] = tree;
  tree.isRed = true;
  save.isRed = false;
  return save;
}

function containsKey_1(key){
  return !!$getEntry(this, key);
}

function entrySet_2(){
  return $TreeMap$EntrySet(new TreeMap$EntrySet, this);
}

function get_3(k){
  var entry, key;
  return key = k , entry = $getEntry(this, key) , entry?entry.value_0:null;
}

function getClass_183(){
  return Ljava_util_TreeMap_2_classLit;
}

function size_8(){
  return this.size;
}

function TreeMap(){
}

_ = TreeMap.prototype = new AbstractMap;
_.containsKey = containsKey_1;
_.entrySet_0 = entrySet_2;
_.get = get_3;
_.getClass$ = getClass_183;
_.size_0 = size_8;
_.typeId$ = 130;
_.root = null;
_.size = 0;
var DEFAULT_COMPARATOR;
function $compare(a, b){
  if (a == null || b == null) {
    throw $NullPointerException(new NullPointerException);
  }
  return a.compareTo$(b);
}

function $compare_0(p0, p1){
  return $compare(dynamicCast(p0, 38), dynamicCast(p1, 38));
}

function getClass_184(){
  return Ljava_util_TreeMap$1_2_classLit;
}

function TreeMap$1(){
}

_ = TreeMap$1.prototype = new Object_0;
_.getClass$ = getClass_184;
_.typeId$ = 0;
function $TreeMap$EntryIterator(this$static, this$0){
  $TreeMap$EntryIterator_0(this$static, ($clinit_337() , All), null, null, this$0);
  return this$static;
}

function $TreeMap$EntryIterator_0(this$static, type, fromKey, toKey, this$0){
  var list;
  this$static.this$0 = this$0;
  list = $ArrayList(new ArrayList);
  $inOrderAdd(this$static, list, type, this$static.this$0.root, fromKey, toKey);
  this$static.iter = $AbstractList$IteratorImpl(new AbstractList$IteratorImpl, list);
  return this$static;
}

function $inOrderAdd(this$static, list, type, current, fromKey, toKey){
  if (!current) {
    return;
  }
  !!current.child[0] && $inOrderAdd(this$static, list, type, current.child[0], fromKey, toKey);
  $inRange(type, current.key, fromKey, toKey) && list.add_0(current);
  !!current.child[1] && $inOrderAdd(this$static, list, type, current.child[1], fromKey, toKey);
}

function $inRange(type, key, fromKey, toKey){
  if (type.toKeyValid()) {
    if ($compare(dynamicCast(key, 38), dynamicCast(toKey, 38)) >= 0) {
      return false;
    }
  }
  if (type.fromKeyValid()) {
    if ($compare(dynamicCast(key, 38), dynamicCast(fromKey, 38)) < 0) {
      return false;
    }
  }
  return true;
}

function getClass_185(){
  return Ljava_util_TreeMap$EntryIterator_2_classLit;
}

function hasNext_6(){
  return $hasNext_0(this.iter);
}

function next_7(){
  return this.last = dynamicCast($next_2(this.iter), 44);
}

function remove_10(){
  $remove_4(this.iter);
  $remove_8(this.this$0, this.last.getKey());
}

function TreeMap$EntryIterator(){
}

_ = TreeMap$EntryIterator.prototype = new Object_0;
_.getClass$ = getClass_185;
_.hasNext = hasNext_6;
_.next = next_7;
_.remove_0 = remove_10;
_.typeId$ = 0;
_.iter = null;
_.last = null;
_.this$0 = null;
function $TreeMap$EntrySet(this$static, this$0){
  this$static.this$0 = this$0;
  return this$static;
}

function contains_4(o){
  var entry, lookupEntry;
  if (!(o != null && canCast(o.typeId$, 44))) {
    return false;
  }
  entry = dynamicCast(o, 44);
  lookupEntry = $getEntry(this.this$0, entry.getKey());
  return !!lookupEntry && equalsWithNullCheck(lookupEntry.value_0, entry.getValue());
}

function getClass_186(){
  return Ljava_util_TreeMap$EntrySet_2_classLit;
}

function iterator_8(){
  return $TreeMap$EntryIterator(new TreeMap$EntryIterator, this.this$0);
}

function size_9(){
  return this.this$0.size;
}

function TreeMap$EntrySet(){
}

_ = TreeMap$EntrySet.prototype = new AbstractSet;
_.contains_0 = contains_4;
_.getClass$ = getClass_186;
_.iterator = iterator_8;
_.size_0 = size_9;
_.typeId$ = 131;
_.this$0 = null;
function $TreeMap$Node(this$static, key, value){
  this$static.key = key;
  this$static.value_0 = value;
  this$static.child = initDim(_3Ljava_util_TreeMap$Node_2_classLit, 163, 45, 2, 0);
  this$static.isRed = true;
  return this$static;
}

function equals_20(o){
  var other;
  if (!(o != null && canCast(o.typeId$, 45))) {
    return false;
  }
  other = dynamicCast(o, 45);
  return equalsWithNullCheck(this.key, other.key) && equalsWithNullCheck(this.value_0, other.value_0);
}

function getClass_187(){
  return Ljava_util_TreeMap$Node_2_classLit;
}

function getKey_3(){
  return this.key;
}

function getValue_3(){
  return this.value_0;
}

function hashCode_23(){
  var keyHash, valueHash;
  keyHash = this.key != null?hashCode__devirtual$(this.key):0;
  valueHash = this.value_0 != null?hashCode__devirtual$(this.value_0):0;
  return keyHash ^ valueHash;
}

function setValue_3(value){
  var old;
  old = this.value_0;
  this.value_0 = value;
  return old;
}

function toString_40(){
  return this.key + '=' + this.value_0;
}

function TreeMap$Node(){
}

_ = TreeMap$Node.prototype = new Object_0;
_.equals$ = equals_20;
_.getClass$ = getClass_187;
_.getKey = getKey_3;
_.getValue = getValue_3;
_.hashCode$ = hashCode_23;
_.setValue = setValue_3;
_.toString$ = toString_40;
_.typeId$ = 132;
_.child = null;
_.isRed = false;
_.key = null;
_.value_0 = null;
function getClass_188(){
  return Ljava_util_TreeMap$State_2_classLit;
}

function toString_41(){
  return 'State: mv=' + this.matchValue + ' value=' + this.value_0 + ' done=' + this.done + ' found=' + this.found;
}

function TreeMap$State(){
}

_ = TreeMap$State.prototype = new Object_0;
_.getClass$ = getClass_188;
_.toString$ = toString_41;
_.typeId$ = 0;
_.done = false;
_.found = false;
_.matchValue = false;
_.value_0 = null;
function $clinit_337(){
  $clinit_337 = nullMethod;
  All = $TreeMap$SubMapType(new TreeMap$SubMapType, 'All', 0);
  Head = $TreeMap$SubMapType$1(new TreeMap$SubMapType$1, 'Head', 1);
  Range = $TreeMap$SubMapType$2(new TreeMap$SubMapType$2, 'Range', 2);
  Tail = $TreeMap$SubMapType$3(new TreeMap$SubMapType$3, 'Tail', 3);
}

function $TreeMap$SubMapType(this$static, enum$name, enum$ordinal){
  $clinit_337();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function fromKeyValid(){
  return false;
}

function getClass_189(){
  return Ljava_util_TreeMap$SubMapType_2_classLit;
}

function toKeyValid(){
  return false;
}

function values_3(){
  $clinit_337();
  return initValues(_3Ljava_util_TreeMap$SubMapType_2_classLit, 164, 46, [All, Head, Range, Tail]);
}

function TreeMap$SubMapType(){
}

_ = TreeMap$SubMapType.prototype = new Enum;
_.fromKeyValid = fromKeyValid;
_.getClass$ = getClass_189;
_.toKeyValid = toKeyValid;
_.typeId$ = 133;
var All, Head, Range, Tail;
function $clinit_338(){
  $clinit_338 = nullMethod;
  $clinit_337();
}

function $TreeMap$SubMapType$1(this$static, enum$name, enum$ordinal){
  $clinit_338();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function getClass_190(){
  return Ljava_util_TreeMap$SubMapType$1_2_classLit;
}

function toKeyValid_0(){
  return true;
}

function TreeMap$SubMapType$1(){
}

_ = TreeMap$SubMapType$1.prototype = new TreeMap$SubMapType;
_.getClass$ = getClass_190;
_.toKeyValid = toKeyValid_0;
_.typeId$ = 134;
function $clinit_339(){
  $clinit_339 = nullMethod;
  $clinit_337();
}

function $TreeMap$SubMapType$2(this$static, enum$name, enum$ordinal){
  $clinit_339();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function fromKeyValid_0(){
  return true;
}

function getClass_191(){
  return Ljava_util_TreeMap$SubMapType$2_2_classLit;
}

function toKeyValid_1(){
  return true;
}

function TreeMap$SubMapType$2(){
}

_ = TreeMap$SubMapType$2.prototype = new TreeMap$SubMapType;
_.fromKeyValid = fromKeyValid_0;
_.getClass$ = getClass_191;
_.toKeyValid = toKeyValid_1;
_.typeId$ = 135;
function $clinit_340(){
  $clinit_340 = nullMethod;
  $clinit_337();
}

function $TreeMap$SubMapType$3(this$static, enum$name, enum$ordinal){
  $clinit_340();
  this$static.name_0 = enum$name;
  this$static.ordinal = enum$ordinal;
  return this$static;
}

function fromKeyValid_1(){
  return true;
}

function getClass_192(){
  return Ljava_util_TreeMap$SubMapType$3_2_classLit;
}

function TreeMap$SubMapType$3(){
}

_ = TreeMap$SubMapType$3.prototype = new TreeMap$SubMapType;
_.fromKeyValid = fromKeyValid_1;
_.getClass$ = getClass_192;
_.typeId$ = 136;
function equalsWithNullCheck(a, b){
  return (a == null?null:a) === (b == null?null:b) || a != null && equals__devirtual$(a, b);
}

var $entry = entry_0;
function gwtOnLoad(errFn, modName, modBase){
  $moduleName = modName;
  $moduleBase = modBase;
  if (errFn)
    try {
      $entry(init)();
    }
     catch (e) {
      errFn(modName);
    }
   else {
    $entry(init)();
  }
}

--></script>
<script><!--
var Ljava_lang_Object_2_classLit = createForClass('java.lang.', 'Object'), Lcar_orientor_client_wfio_obj_Face_2_classLit = createForClass('car.orientor.client.wfio.obj.', 'Face'), Lcar_orientor_math_Point3D_2_classLit = createForClass('car.orientor.math.', 'Point3D'), _3Lcar_orientor_math_Point3D_2_classLit = createForArray('[Lcar.orientor.math.', 'Point3D;'), _3Lcar_orientor_client_wfio_obj_Face_2_classLit = createForArray('[Lcar.orientor.client.wfio.obj.', 'Face;'), _3I_classLit = createForArray('', '[I'), Lcar_orientor_client_wfio_obj_ObjIO$1_2_classLit = createForClass('car.orientor.client.wfio.obj.', 'ObjIO$1'), Lcar_orientor_client_wfio_obj_ObjWireFrame_2_classLit = createForClass('car.orientor.client.wfio.obj.', 'ObjWireFrame'), Lcom_google_gwt_user_client_ui_UIObject_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'UIObject'), Lcom_google_gwt_user_client_ui_Widget_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Widget'), Lcom_google_gwt_user_client_ui_Panel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Panel'), Lcom_google_gwt_user_client_ui_SimplePanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'SimplePanel'), Lcom_google_gwt_user_client_ui_FocusPanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'FocusPanel'), Lcar_orientor_client_CarOrientor_2_classLit = createForClass('car.orientor.client.', 'CarOrientor'), Lcar_orientor_client_CarOrientor$1_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$1'), Lcar_orientor_client_CarOrientor$2_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$2'), Lcar_orientor_client_CarOrientor$3_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$3'), Lcar_orientor_client_CarOrientor$4_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$4'), Lcar_orientor_client_CarOrientor$5_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$5'), Lcar_orientor_client_CarOrientor$6_2_classLit = createForClass('car.orientor.client.', 'CarOrientor$6'), Lcar_orientor_client_Config_2_classLit = createForClass('car.orientor.client.', 'Config'), Lcar_orientor_client_Config$AddCommand_2_classLit = createForClass('car.orientor.client.', 'Config$AddCommand'), Lcar_orientor_client_Config$1_2_classLit = createForClass('car.orientor.client.', 'Config$1'), Lcar_orientor_client_MovableImageMouseHandler_2_classLit = createForClass('car.orientor.client.', 'MovableImageMouseHandler'), Lcar_orientor_client_MovableImageView_2_classLit = createForClass('car.orientor.client.', 'MovableImageView'), _3D_classLit = createForArray('', '[D'), Lgwt_g2d_client_math_Vector2_2_classLit = createForClass('gwt.g2d.client.math.', 'Vector2'), _3Lgwt_g2d_client_math_Vector2_2_classLit = createForArray('[Lgwt.g2d.client.math.', 'Vector2;'), Lcar_orientor_client_ObjWireFrameView_2_classLit = createForClass('car.orientor.client.', 'ObjWireFrameView'), Lcar_orientor_client_WireFrameMouseHandler_2_classLit = createForClass('car.orientor.client.', 'WireFrameMouseHandler'), Lcom_google_gwt_user_client_ui_Composite_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Composite'), Lcar_orientor_input_Slider_2_classLit = createForClass('car.orientor.input.', 'Slider'), Lcom_google_gwt_user_client_ui_FocusWidget_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'FocusWidget'), Lcar_orientor_input_SliderImplGeneral$SliderImplWidget_2_classLit = createForClass('car.orientor.input.', 'SliderImplGeneral$SliderImplWidget'), Lcar_orientor_input_SliderImplGeneral$SliderImplWidget$1_2_classLit = createForClass('car.orientor.input.', 'SliderImplGeneral$SliderImplWidget$1'), Lcar_orientor_math_Matrix3D_2_classLit = createForClass('car.orientor.math.', 'Matrix3D'), Lcom_google_gwt_user_client_Timer_2_classLit = createForClass('com.google.gwt.user.client.', 'Timer'), Ljava_lang_Throwable_2_classLit = createForClass('java.lang.', 'Throwable'), Ljava_lang_Exception_2_classLit = createForClass('java.lang.', 'Exception'), Ljava_lang_RuntimeException_2_classLit = createForClass('java.lang.', 'RuntimeException'), Lcom_google_gwt_core_client_Scheduler_2_classLit = createForClass('com.google.gwt.core.client.', 'Scheduler'), Lcom_google_gwt_core_client_impl_SchedulerImpl_2_classLit = createForClass('com.google.gwt.core.client.impl.', 'SchedulerImpl'), Lcom_google_gwt_core_client_impl_SchedulerImpl$1_2_classLit = createForClass('com.google.gwt.core.client.impl.', 'SchedulerImpl$1'), Lcom_google_gwt_core_client_impl_SchedulerImpl$2_2_classLit = createForClass('com.google.gwt.core.client.impl.', 'SchedulerImpl$2'), Lcom_google_gwt_core_client_impl_StackTraceCreator$Collector_2_classLit = createForClass('com.google.gwt.core.client.impl.', 'StackTraceCreator$Collector'), Ljava_lang_StackTraceElement_2_classLit = createForClass('java.lang.', 'StackTraceElement'), _3Ljava_lang_StackTraceElement_2_classLit = createForArray('[Ljava.lang.', 'StackTraceElement;'), Lcom_google_gwt_core_client_JavaScriptException_2_classLit = createForClass('com.google.gwt.core.client.', 'JavaScriptException'), Lcom_google_gwt_core_client_JavaScriptObject_2_classLit = createForClass('com.google.gwt.core.client.', 'JavaScriptObject$'), Lcom_google_gwt_dom_client_DOMImpl_2_classLit = createForClass('com.google.gwt.dom.client.', 'DOMImpl'), Lcom_google_gwt_dom_client_DOMImplTrident_2_classLit = createForClass('com.google.gwt.dom.client.', 'DOMImplTrident'), Lcom_google_gwt_dom_client_DOMImplIE6_2_classLit = createForClass('com.google.gwt.dom.client.', 'DOMImplIE6'), Ljava_lang_String_2_classLit = createForClass('java.lang.', 'String'), _3Ljava_lang_String_2_classLit = createForArray('[Ljava.lang.', 'String;'), Ljava_lang_Enum_2_classLit = createForClass('java.lang.', 'Enum'), Lcom_google_gwt_dom_client_Style$Unit_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit', values_1), _3Lcom_google_gwt_dom_client_Style$Unit_2_classLit = createForArray('[Lcom.google.gwt.dom.client.', 'Style$Unit;'), Lcom_google_gwt_dom_client_Style$Unit$1_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$1', null), Lcom_google_gwt_dom_client_Style$Unit$2_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$2', null), Lcom_google_gwt_dom_client_Style$Unit$3_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$3', null), Lcom_google_gwt_dom_client_Style$Unit$4_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$4', null), Lcom_google_gwt_dom_client_Style$Unit$5_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$5', null), Lcom_google_gwt_dom_client_Style$Unit$6_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$6', null), Lcom_google_gwt_dom_client_Style$Unit$7_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$7', null), Lcom_google_gwt_dom_client_Style$Unit$8_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$8', null), Lcom_google_gwt_dom_client_Style$Unit$9_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Unit$9', null), Lcom_google_gwt_dom_client_Style$Display_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Display', values_0), _3Lcom_google_gwt_dom_client_Style$Display_2_classLit = createForArray('[Lcom.google.gwt.dom.client.', 'Style$Display;'), Lcom_google_gwt_dom_client_Style$Display$1_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Display$1', null), Lcom_google_gwt_dom_client_Style$Display$2_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Display$2', null), Lcom_google_gwt_dom_client_Style$Display$3_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Display$3', null), Lcom_google_gwt_dom_client_Style$Display$4_2_classLit = createForEnum('com.google.gwt.dom.client.', 'Style$Display$4', null), Lcom_google_gwt_event_shared_GwtEvent_2_classLit = createForClass('com.google.gwt.event.shared.', 'GwtEvent'), Lcom_google_gwt_event_dom_client_DomEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'DomEvent'), Lcom_google_gwt_event_dom_client_ChangeEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'ChangeEvent'), Lcom_google_gwt_event_dom_client_ClickEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'ClickEvent'), Lcom_google_gwt_event_shared_GwtEvent$Type_2_classLit = createForClass('com.google.gwt.event.shared.', 'GwtEvent$Type'), Lcom_google_gwt_event_dom_client_DomEvent$Type_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'DomEvent$Type'), Lcom_google_gwt_event_dom_client_LoadEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'LoadEvent'), Lcom_google_gwt_event_dom_client_MouseEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'MouseEvent'), Lcom_google_gwt_event_dom_client_MouseDownEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'MouseDownEvent'), Lcom_google_gwt_event_dom_client_MouseMoveEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'MouseMoveEvent'), Lcom_google_gwt_event_dom_client_MouseUpEvent_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'MouseUpEvent'), Lcom_google_gwt_event_dom_client_PrivateMap_2_classLit = createForClass('com.google.gwt.event.dom.client.', 'PrivateMap'), Lcom_google_gwt_event_logical_shared_CloseEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared.', 'CloseEvent'), Lcom_google_gwt_event_logical_shared_ValueChangeEvent_2_classLit = createForClass('com.google.gwt.event.logical.shared.', 'ValueChangeEvent'), Lcom_google_gwt_event_shared_DefaultHandlerRegistration_2_classLit = createForClass('com.google.gwt.event.shared.', 'DefaultHandlerRegistration'), Lcom_google_gwt_event_shared_HandlerManager_2_classLit = createForClass('com.google.gwt.event.shared.', 'HandlerManager'), Lcom_google_gwt_event_shared_HandlerManager$HandlerRegistry_2_classLit = createForClass('com.google.gwt.event.shared.', 'HandlerManager$HandlerRegistry'), Lcom_google_gwt_event_shared_HandlerManager$1_2_classLit = createForClass('com.google.gwt.event.shared.', 'HandlerManager$1'), Lcom_google_gwt_http_client_Request_2_classLit = createForClass('com.google.gwt.http.client.', 'Request'), Lcom_google_gwt_http_client_Response_2_classLit = createForClass('com.google.gwt.http.client.', 'Response'), Lcom_google_gwt_http_client_Request$1_2_classLit = createForClass('com.google.gwt.http.client.', 'Request$1'), Lcom_google_gwt_http_client_Request$3_2_classLit = createForClass('com.google.gwt.http.client.', 'Request$3'), Lcom_google_gwt_http_client_RequestBuilder_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestBuilder'), Lcom_google_gwt_http_client_RequestBuilder$Method_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestBuilder$Method'), Lcom_google_gwt_http_client_RequestBuilder$1_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestBuilder$1'), Lcom_google_gwt_http_client_RequestException_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestException'), Lcom_google_gwt_http_client_RequestPermissionException_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestPermissionException'), Lcom_google_gwt_http_client_RequestTimeoutException_2_classLit = createForClass('com.google.gwt.http.client.', 'RequestTimeoutException'), _3_3D_classLit = createForArray('', '[[D'), Lcom_google_gwt_user_client_impl_com_1google_1gwt_1user_1client_1impl_1WindowImplIE_1Resources_1default_1StaticClientBundleGenerator$1_2_classLit = createForClass('com.google.gwt.user.client.impl.', 'com_google_gwt_user_client_impl_WindowImplIE_Resources_default_StaticClientBundleGenerator$1'), Lcom_google_gwt_user_client_ui_ComplexPanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'ComplexPanel'), Lcom_google_gwt_user_client_ui_AbsolutePanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'AbsolutePanel'), _3Ljava_lang_Throwable_2_classLit = createForArray('[Ljava.lang.', 'Throwable;'), Lcom_google_gwt_user_client_ui_AttachDetachException_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'AttachDetachException'), Lcom_google_gwt_user_client_ui_AttachDetachException$1_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'AttachDetachException$1'), Lcom_google_gwt_user_client_ui_AttachDetachException$2_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'AttachDetachException$2'), Lcom_google_gwt_user_client_ui_ButtonBase_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'ButtonBase'), Lcom_google_gwt_user_client_ui_Button_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Button'), Ljava_util_AbstractCollection_2_classLit = createForClass('java.util.', 'AbstractCollection'), Ljava_util_AbstractList_2_classLit = createForClass('java.util.', 'AbstractList'), Ljava_util_ArrayList_2_classLit = createForClass('java.util.', 'ArrayList'), _3Lcom_google_gwt_user_client_ui_Widget_2_classLit = createForArray('[Lcom.google.gwt.user.client.ui.', 'Widget;'), Lcom_google_gwt_user_client_ui_FlowPanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'FlowPanel'), Lcom_google_gwt_user_client_ui_Label_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Label'), Lcom_google_gwt_user_client_ui_Image_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Image'), Lcom_google_gwt_user_client_ui_Image$State_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Image$State'), Lcom_google_gwt_user_client_ui_Image$UnclippedState_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'Image$UnclippedState'), Lcom_google_gwt_user_client_ui_InlineLabel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'InlineLabel'), Lcom_google_gwt_user_client_ui_ListBox_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'ListBox'), _3C_classLit = createForArray('', '[C'), Lcom_google_gwt_user_client_ui_RootPanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'RootPanel'), Lcom_google_gwt_user_client_ui_RootPanel$DefaultRootPanel_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'RootPanel$DefaultRootPanel'), Lcom_google_gwt_user_client_ui_RootPanel$1_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'RootPanel$1'), Lcom_google_gwt_user_client_ui_RootPanel$2_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'RootPanel$2'), Lcom_google_gwt_user_client_ui_SimplePanel$1_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'SimplePanel$1'), Lcom_google_gwt_user_client_ui_WidgetCollection_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'WidgetCollection'), Lcom_google_gwt_user_client_ui_WidgetCollection$WidgetIterator_2_classLit = createForClass('com.google.gwt.user.client.ui.', 'WidgetCollection$WidgetIterator'), Lcom_google_gwt_user_client_Timer$1_2_classLit = createForClass('com.google.gwt.user.client.', 'Timer$1'), Lcom_google_gwt_user_client_Window$ClosingEvent_2_classLit = createForClass('com.google.gwt.user.client.', 'Window$ClosingEvent'), Lcom_google_gwt_user_client_Window$WindowHandlers_2_classLit = createForClass('com.google.gwt.user.client.', 'Window$WindowHandlers'), Lcom_google_gwt_xml_client_impl_DOMItem_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'DOMItem'), Lcom_google_gwt_xml_client_impl_NodeImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'NodeImpl'), Lcom_google_gwt_xml_client_impl_AttrImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'AttrImpl'), Lcom_google_gwt_xml_client_impl_CharacterDataImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'CharacterDataImpl'), Lcom_google_gwt_xml_client_impl_TextImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'TextImpl'), Lcom_google_gwt_xml_client_impl_CDATASectionImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'CDATASectionImpl'), Lcom_google_gwt_xml_client_impl_CommentImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'CommentImpl'), Lcom_google_gwt_xml_client_DOMException_2_classLit = createForClass('com.google.gwt.xml.client.', 'DOMException'), Lcom_google_gwt_xml_client_impl_DOMParseException_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'DOMParseException'), Lcom_google_gwt_xml_client_impl_DocumentFragmentImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'DocumentFragmentImpl'), Lcom_google_gwt_xml_client_impl_DocumentImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'DocumentImpl'), Lcom_google_gwt_xml_client_impl_ElementImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'ElementImpl'), Lcom_google_gwt_xml_client_impl_NodeListImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'NodeListImpl'), Lcom_google_gwt_xml_client_impl_ProcessingInstructionImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'ProcessingInstructionImpl'), Lcom_google_gwt_xml_client_impl_XMLParserImpl_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'XMLParserImpl'), Lcom_google_gwt_xml_client_impl_XMLParserImplIE6_2_classLit = createForClass('com.google.gwt.xml.client.impl.', 'XMLParserImplIE6'), Lgwt_g2d_client_graphics_Color_2_classLit = createForClass('gwt.g2d.client.graphics.', 'Color'), Lgwt_g2d_client_graphics_Composition_2_classLit = createForEnum('gwt.g2d.client.graphics.', 'Composition', values_2), _3Lgwt_g2d_client_graphics_Composition_2_classLit = createForArray('[Lgwt.g2d.client.graphics.', 'Composition;'), Lgwt_g2d_client_graphics_DirectShapeRenderer_2_classLit = createForClass('gwt.g2d.client.graphics.', 'DirectShapeRenderer'), Lgwt_g2d_client_graphics_Surface_2_classLit = createForClass('gwt.g2d.client.graphics.', 'Surface'), Lgwt_g2d_client_math_Matrix_2_classLit = createForClass('gwt.g2d.client.math.', 'Matrix'), Lgwt_g2d_client_math_Rectangle_2_classLit = createForClass('gwt.g2d.client.math.', 'Rectangle'), Lgwt_g2d_client_math_Rectangle$ImmutableRectangle_2_classLit = createForClass('gwt.g2d.client.math.', 'Rectangle$ImmutableRectangle'), Lgwt_g2d_client_math_Vector2$ImmutableVector2_2_classLit = createForClass('gwt.g2d.client.math.', 'Vector2$ImmutableVector2'), Ljava_lang_IndexOutOfBoundsException_2_classLit = createForClass('java.lang.', 'IndexOutOfBoundsException'), Ljava_lang_ArrayStoreException_2_classLit = createForClass('java.lang.', 'ArrayStoreException'), Ljava_lang_Boolean_2_classLit = createForClass('java.lang.', 'Boolean'), Ljava_lang_Number_2_classLit = createForClass('java.lang.', 'Number'), Ljava_lang_Class_2_classLit = createForClass('java.lang.', 'Class'), Ljava_lang_ClassCastException_2_classLit = createForClass('java.lang.', 'ClassCastException'), Ljava_lang_Double_2_classLit = createForClass('java.lang.', 'Double'), Ljava_lang_IllegalArgumentException_2_classLit = createForClass('java.lang.', 'IllegalArgumentException'), Ljava_lang_IllegalStateException_2_classLit = createForClass('java.lang.', 'IllegalStateException'), Ljava_lang_Integer_2_classLit = createForClass('java.lang.', 'Integer'), _3Ljava_lang_Integer_2_classLit = createForArray('[Ljava.lang.', 'Integer;'), Ljava_lang_NullPointerException_2_classLit = createForClass('java.lang.', 'NullPointerException'), Ljava_lang_NumberFormatException_2_classLit = createForClass('java.lang.', 'NumberFormatException'), Ljava_lang_StringBuffer_2_classLit = createForClass('java.lang.', 'StringBuffer'), Ljava_lang_StringBuilder_2_classLit = createForClass('java.lang.', 'StringBuilder'), Ljava_lang_UnsupportedOperationException_2_classLit = createForClass('java.lang.', 'UnsupportedOperationException'), _3Ljava_lang_Object_2_classLit = createForArray('[Ljava.lang.', 'Object;'), Ljava_util_AbstractMap_2_classLit = createForClass('java.util.', 'AbstractMap'), Ljava_util_AbstractHashMap_2_classLit = createForClass('java.util.', 'AbstractHashMap'), Ljava_util_AbstractSet_2_classLit = createForClass('java.util.', 'AbstractSet'), Ljava_util_AbstractHashMap$EntrySet_2_classLit = createForClass('java.util.', 'AbstractHashMap$EntrySet'), Ljava_util_AbstractHashMap$EntrySetIterator_2_classLit = createForClass('java.util.', 'AbstractHashMap$EntrySetIterator'), Ljava_util_AbstractMapEntry_2_classLit = createForClass('java.util.', 'AbstractMapEntry'), Ljava_util_AbstractHashMap$MapEntryNull_2_classLit = createForClass('java.util.', 'AbstractHashMap$MapEntryNull'), Ljava_util_AbstractHashMap$MapEntryString_2_classLit = createForClass('java.util.', 'AbstractHashMap$MapEntryString'), Ljava_util_AbstractList$IteratorImpl_2_classLit = createForClass('java.util.', 'AbstractList$IteratorImpl'), Ljava_util_AbstractMap$1_2_classLit = createForClass('java.util.', 'AbstractMap$1'), Ljava_util_AbstractMap$1$1_2_classLit = createForClass('java.util.', 'AbstractMap$1$1'), Ljava_util_Collections$UnmodifiableCollection_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableCollection'), Ljava_util_Collections$UnmodifiableList_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableList'), Ljava_util_Collections$UnmodifiableMap_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableMap'), Ljava_util_Collections$UnmodifiableSet_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableSet'), Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableMap$UnmodifiableEntrySet'), Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableEntry'), Ljava_util_Collections$UnmodifiableMap$UnmodifiableEntrySet$1_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableMap$UnmodifiableEntrySet$1'), Ljava_util_Collections$UnmodifiableRandomAccessList_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableRandomAccessList'), Ljava_util_Collections$UnmodifiableCollectionIterator_2_classLit = createForClass('java.util.', 'Collections$UnmodifiableCollectionIterator'), Ljava_util_HashMap_2_classLit = createForClass('java.util.', 'HashMap'), Ljava_util_HashSet_2_classLit = createForClass('java.util.', 'HashSet'), Ljava_util_MapEntryImpl_2_classLit = createForClass('java.util.', 'MapEntryImpl'), Ljava_util_NoSuchElementException_2_classLit = createForClass('java.util.', 'NoSuchElementException'), Ljava_util_TreeMap_2_classLit = createForClass('java.util.', 'TreeMap'), Ljava_util_TreeMap$EntryIterator_2_classLit = createForClass('java.util.', 'TreeMap$EntryIterator'), Ljava_util_TreeMap$EntrySet_2_classLit = createForClass('java.util.', 'TreeMap$EntrySet'), Ljava_util_TreeMap$Node_2_classLit = createForClass('java.util.', 'TreeMap$Node'), _3Ljava_util_TreeMap$Node_2_classLit = createForArray('[Ljava.util.', 'TreeMap$Node;'), Ljava_util_TreeMap$State_2_classLit = createForClass('java.util.', 'TreeMap$State'), Ljava_util_TreeMap$SubMapType_2_classLit = createForEnum('java.util.', 'TreeMap$SubMapType', values_3), _3Ljava_util_TreeMap$SubMapType_2_classLit = createForArray('[Ljava.util.', 'TreeMap$SubMapType;'), Ljava_util_TreeMap$SubMapType$1_2_classLit = createForEnum('java.util.', 'TreeMap$SubMapType$1', null), Ljava_util_TreeMap$SubMapType$2_2_classLit = createForEnum('java.util.', 'TreeMap$SubMapType$2', null), Ljava_util_TreeMap$SubMapType$3_2_classLit = createForEnum('java.util.', 'TreeMap$SubMapType$3', null), Ljava_util_TreeMap$1_2_classLit = createForClass('java.util.', 'TreeMap$1');
$stats && $stats({moduleName:'carorientor',sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalEnd'});
if ($wnd.carorientor) $wnd.carorientor.onScriptLoad();
--></script></body></html>
